結果
問題 |
No.844 split game
|
ユーザー |
👑 |
提出日時 | 2019-06-30 00:26:02 |
言語 | Lua (LuaJit 2.1.1734355927) |
結果 |
WA
|
実行時間 | - |
コード長 | 1,039 bytes |
コンパイル時間 | 37 ms |
コンパイル使用メモリ | 6,688 KB |
実行使用メモリ | 23,040 KB |
最終ジャッジ日時 | 2024-07-02 05:42:26 |
合計ジャッジ時間 | 7,111 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 4 |
other | AC * 34 WA * 22 |
ソースコード
local n, m, a = io.read("*n", "*n", "*n") local t = {} for i = 1, m do t[i] = {} t[i].l, t[i].r, t[i].p = io.read("*n", "*n", "*n") end table.sort(t, function(x, y) if x.r ~= y.r then return x.r < y.r else return x.l < y.l end end) local mma = math.max local ret = {} local inf = -100000000000000 for i = 1, n do ret[i] = inf end local curmax = {} local curpos = 1 for i = 1, n do curmax[i] = 0 end for i = 1, m do local l, r, p = t[i].l, t[i].r, t[i].p local cost = r == n and 0 or a if l == 1 then ret[r] = mma(ret[r], p - cost) else -- print(i, l, r, p, ret[l - 1]) if ret[l - 1] == inf then -- ret[r] = mma(ret[r], -a + p - cost) ret[l - 1] = curmax[l - 1] - a end ret[r] = mma(ret[r], ret[l - 1] + p - cost) end if curpos ~= r then for k = curpos + 1, r do curmax[k] = mma(curmax[k], curmax[k - 1]) end curpos = r end curmax[r] = mma(curmax[r], ret[r]) end local tot = 0 for i = 1, n do -- print(i, ret[i]) tot = mma(tot, ret[i]) end print(tot)