結果

問題 No.3214 small square
ユーザー nikoro256
提出日時 2025-07-25 23:08:10
言語 PyPy3
(7.3.15)
結果
RE  
実行時間 -
コード長 761 bytes
コンパイル時間 400 ms
コンパイル使用メモリ 83,032 KB
実行使用メモリ 67,772 KB
最終ジャッジ日時 2025-07-25 23:08:16
合計ジャッジ時間 5,396 ms
ジャッジサーバーID
(参考情報)
judge2 / judge4
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample RE * 3
other RE * 40
権限があれば一括ダウンロードができます

ソースコード

diff #

from atcoder import lazysegtree
import bisect
N,A=map(int,input().split())
inf = 10**18
lst = lazysegtree.LazySegTree(
    op = lambda x, y: max(x, y),
    e = -inf,
    mapping = lambda f, x: f + x,
    composition = lambda f, g: f + g,
    id_ = 0,
    v = [0] * (N)
)
Ys = []
d = []
for _ in range(N):
    x,y,v=map(int,input().split())
    Ys.append(y)
    d.append((x,1, y, v))
    d.append((x+A,2, y, v))
Ys.sort()
d.sort()
ans = 0
for x,n,y,v in d:
    left = bisect.bisect_left(Ys, y - A)
    right = bisect.bisect_right(Ys, y)
    #print(left, right, v)
    if n == 1:
        lst.apply(left, right, v)
    else:
        lst.apply(left, right, -v)
    #print([lst.get(i) for i in range(len(Ys))])
    ans = max(ans, lst.prod(0, len(Ys)))    
print(ans)
0