結果
| 問題 |
No.2329 Nafmo、イカサマをする
|
| コンテスト | |
| ユーザー |
sepa38
|
| 提出日時 | 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)
sepa38