結果
問題 |
No.2329 Nafmo、イカサマをする
|
ユーザー |
![]() |
提出日時 | 2023-05-01 14:36:07 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 307 ms / 2,000 ms |
コード長 | 652 bytes |
コンパイル時間 | 302 ms |
コンパイル使用メモリ | 82,360 KB |
実行使用メモリ | 142,592 KB |
最終ジャッジ日時 | 2024-11-20 13:47:28 |
合計ジャッジ時間 | 5,143 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 40 |
ソースコード
import bisect n, m, k = map(int, input().split()) a = list(map(int, input().split())) assert 0 <= n <= 100 assert 0 <= m <= 6 * max(a) assert 1 <= k <= 6 assert len(a) == n assert 0 <= min(a) assert max(a) <= 10 ** 9 a += [0] l = set() r = set() for vi in a: for vj in a: for vk in a: if k < 5: vk = 0 if k < 3: vj = 0 l.add(vi+vj+vk) if k < 6: vk = 0 if k < 4: vj = 0 if k < 2: vi = 0 r.add(vi+vj+vk) l = sorted(list(l)) r = sorted(list(r)) ans = 0 for v in l: if v > m: break idx = bisect.bisect_right(r, m-v) - 1 ans = max(ans, v+r[idx]) print(ans)