結果
問題 |
No.2686 商品券の使い道
|
ユーザー |
![]() |
提出日時 | 2024-09-26 22:08:17 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 1,026 ms / 3,000 ms |
コード長 | 483 bytes |
コンパイル時間 | 275 ms |
コンパイル使用メモリ | 82,048 KB |
実行使用メモリ | 84,352 KB |
最終ジャッジ日時 | 2024-09-26 22:08:48 |
合計ジャッジ時間 | 29,379 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 2 |
other | AC * 48 |
ソースコード
n,p1,p2=map(int,input().split()) c=[tuple(map(int,input().split())) for i in range(n)] q=[0]*(1<<n) for i in range(1<<n): a=0 b=0 for j in range(n): if (i>>j)&1: a+=c[j][0] b+=c[j][1] if a<=p1: q[i]=b for j in range(n): for i in range(1<<n): if (i>>j)&1: q[i]=max(q[i],q[i^(1<<j)]) g=0 for i in range(1<<n): a=0 b=0 for j in range(n): if (i>>j)&1: a+=c[j][0] b+=c[j][1] if a<=p2: g=max(g,b+q[((1<<n)-1)^i]) print(g)