結果

問題 No.3424 Shooting Game
コンテスト
ユーザー kidodesu
提出日時 2025-12-27 19:58:58
言語 PyPy3
(7.3.17)
結果
AC  
実行時間 535 ms / 2,000 ms
コード長 702 bytes
記録
記録タグの例:
初AC ショートコード 純ショートコード 純主流ショートコード 最速実行時間
コンパイル時間 3,614 ms
コンパイル使用メモリ 82,028 KB
実行使用メモリ 116,172 KB
最終ジャッジ日時 2026-01-11 17:21:10
合計ジャッジ時間 5,511 ms
ジャッジサーバーID
(参考情報)
judge3 / judge6
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 3
other AC * 11
権限があれば一括ダウンロードができます

ソースコード

diff #
raw source code

n, t = map(int, input().split()); assert 1 <= n <= 2*10**5 and t <= 2*10**5
N = 2*10**5+2
E = [[] for _ in range(N)]
for _ in range(n):
    l, r, p = map(int, input().split()); assert r-l < t and 1 <= p <= 10**9
    E[l].append(p)
    E[r+1].append(~p)

from heapq import *
hq0 = []
hq1 = []
P = [0] * N
for i in range(N-1):
    for p in E[i]:
        if p >= 0:
            heappush(hq0, -p)
        else:
            heappush(hq1, -~p)
    while hq0 and hq1 and hq0[0] == hq1[0]:
        heappop(hq0)
        heappop(hq1)
    if hq0:
        P[i] = -hq0[0]

dp = [0] * N
for i in range(N-1):
    dp[i+1] = max(dp[i+1], dp[i])
    dp[min(N-1, i+t)] = max(dp[min(N-1, i+t)], dp[i]+P[i])

print(dp[N-1])
0