結果
問題 |
No.844 split game
|
ユーザー |
![]() |
提出日時 | 2023-03-23 22:42:06 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 240 ms / 2,000 ms |
コード長 | 584 bytes |
コンパイル時間 | 192 ms |
コンパイル使用メモリ | 81,920 KB |
実行使用メモリ | 95,744 KB |
最終ジャッジ日時 | 2024-09-18 15:41:20 |
合計ジャッジ時間 | 9,792 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 4 |
other | AC * 56 |
ソースコード
import sys readline = sys.stdin.readline N, M, A = map(int, readline().split()) D = [[] for i in range(N + 1)] for i in range(M): L, R, P = map(int, readline().split()) if R == N: P += A D[L - 1].append((R, P - 2 * A)) inf = 10 ** 18 dp = [[-inf] * 2 for i in range(N + 1)] dp[0][1] = 0 for i in range(N): dp[i + 1][0] = max(dp[i + 1][0], dp[i][0], dp[i][1]) for R, C in D[i]: dp[R][1] = max(dp[R][1], dp[i][1] + C + A) dp[R][1] = max(dp[R][1], dp[i][0] + C) ans = 0 for i in range(N + 1): ans = max(ans, max(dp[i])) print(ans)