結果
問題 | No.2329 Nafmo、イカサマをする |
ユーザー |
![]() |
提出日時 | 2023-05-28 15:48:56 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 183 ms / 2,000 ms |
コード長 | 838 bytes |
コンパイル時間 | 321 ms |
コンパイル使用メモリ | 82,972 KB |
実行使用メモリ | 105,216 KB |
最終ジャッジ日時 | 2024-12-27 08:53:52 |
合計ジャッジ時間 | 4,489 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 40 |
ソースコード
N,M,K = map(int,input().split()) A = list(map(int,input().split())) A.sort() from bisect import bisect B = set() for a in A: for b in A: B.add(a+b) B = sorted(B) C = set() for a in A: for b in A: for c in A: C.add(a+b+c) C = sorted(C) ans = 0 if K >= 1: i = bisect(A, M) if i: ans = max(ans, A[i-1]) if K >= 2: i = bisect(B, M) if i: ans = max(ans, B[i-1]) if K >= 3: i = bisect(C, M) if i: ans = max(ans, C[i-1]) if K >= 4: for b in B: i = bisect(B, M-b) if i: ans = max(ans, b + B[i-1]) if K >= 5: for b in B: i = bisect(C, M-b) if i: ans = max(ans, b + C[i-1]) if K >= 6: for c in C: i = bisect(C, M-c) if i: ans = max(ans, c + C[i-1]) print(ans)