結果
問題 |
No.2686 商品券の使い道
|
ユーザー |
![]() |
提出日時 | 2024-03-26 04:08:21 |
言語 | PyPy3 (7.3.15) |
結果 |
TLE
|
実行時間 | - |
コード長 | 896 bytes |
コンパイル時間 | 313 ms |
コンパイル使用メモリ | 81,792 KB |
実行使用メモリ | 134,272 KB |
最終ジャッジ日時 | 2024-09-30 14:13:32 |
合計ジャッジ時間 | 14,890 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 2 |
other | AC * 22 TLE * 1 -- * 25 |
ソースコード
import sys input = sys.stdin.readline N,M,Q=map(int,input().split()) AB=[list(map(int,input().split())) for i in range(N)] LIST1=[] LIST2=[] for i in range(1<<N): c=0 v=0 for j in range(N): if i & (1<<j) != 0: c+=AB[j][0] v+=AB[j][1] if c<=M: LIST1.append(i) if c<=Q: LIST2.append(i) LIST=[] for x in LIST1[::-1]: flag=1 for y in LIST: if x|y==y: flag=0 break if flag==1: LIST.append(x) LIST1=LIST LIST=[] for x in LIST2[::-1]: flag=1 for y in LIST: if x|y==y: flag=0 break if flag==1: LIST.append(x) LIST2=LIST ANS=0 for x in LIST1: for y in LIST2: z=x|y score=0 for i in range(N): if z & (1<<i) !=0: score+=AB[i][1] ANS=max(ANS,score) print(ANS)