結果
問題 | No.2741 Balanced Choice |
ユーザー |
|
提出日時 | 2025-02-20 11:46:17 |
言語 | PyPy3 (7.3.15) |
結果 |
RE
|
実行時間 | - |
コード長 | 843 bytes |
コンパイル時間 | 405 ms |
コンパイル使用メモリ | 81,776 KB |
実行使用メモリ | 67,632 KB |
最終ジャッジ日時 | 2025-02-20 11:46:19 |
合計ジャッジ時間 | 1,952 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | RE * 2 |
other | RE * 10 |
ソースコード
from sortedcontainers import SortedDictfrom atcoder.segtree import SegTreeimport bisectn,w,d=map(int,input().split())INF=10**10D0=SortedDict()D1=SortedDict()D0[0]=0D1[0]=0for _ in range(n):t,w,v=map(int,input().split())if t:for i,j in D1.items():if i-w not in D1:D1[i-w]=v+jelse:D1[i-w]=max(D1[i-w],v+j)else:for i,j in D0.items():if i-w not in D0:D0[i-w]=v+jelse:D0[i-w]=max(D0[i-w],v+j)WW=[]VV=[]for i,j in D1.items():WW.append(-i)VV.append(j)WW=WW[::-1]VV=VV[::-1]st=SegTree(max,-1,VV)ans=0for i,j in D0.items():if -i*2-d<=w:l=bisect.bisect_left(WW,-i-d)r=bisect.bisect_right(WW,min(-i+d,w))ans=max(st.prod(l,r)+j,ans)print(ans)