結果
| 問題 |
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)