結果
| 問題 |
No.801 エレベーター
|
| コンテスト | |
| ユーザー |
👑 |
| 提出日時 | 2021-05-04 22:50:54 |
| 言語 | Lua (LuaJit 2.1.1734355927) |
| 結果 |
AC
|
| 実行時間 | 369 ms / 2,000 ms |
| コード長 | 847 bytes |
| コンパイル時間 | 262 ms |
| コンパイル使用メモリ | 6,684 KB |
| 実行使用メモリ | 5,376 KB |
| 最終ジャッジ日時 | 2024-07-23 18:07:57 |
| 合計ジャッジ時間 | 6,967 ms |
|
ジャッジサーバーID (参考情報) |
judge3 / judge5 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 26 |
ソースコード
local mod = 1000000007
local function badd(a, b) return (a + b) % mod end
local function bsub(a, b) return (a + mod - b) % mod end
local n, m, k = io.read("*n", "*n", "*n")
local l, r = {}, {}
for i = 1, m do
l[i], r[i] = io.read("*n", "*n")
end
local dp1, dp2 = {1}, {}
for i = 2, n do
dp1[i] = 0
end
for ik = 1, k do
local src = ik % 2 == 1 and dp1 or dp2
local dst = ik % 2 == 1 and dp2 or dp1
for i = 1, n do
dst[i] = 0
end
for i = 2, n do
src[i] = badd(src[i], src[i - 1])
end
for i = 1, m do
local li, ri = l[i], r[i]
local z = src[ri]
if 1 < li then z = bsub(z, src[li - 1]) end
dst[li] = badd(dst[li], z)
if ri < n then
dst[ri + 1] = bsub(dst[ri + 1], z)
end
end
for i = 2, n do
dst[i] = badd(dst[i], dst[i - 1])
end
end
local tbl = k % 2 == 1 and dp2 or dp1
print(tbl[n])