結果
問題 |
No.2329 Nafmo、イカサマをする
|
ユーザー |
|
提出日時 | 2023-05-28 15:43:33 |
言語 | Python3 (3.13.1 + numpy 2.2.1 + scipy 1.14.1) |
結果 |
WA
|
実行時間 | - |
コード長 | 1,252 bytes |
コンパイル時間 | 229 ms |
コンパイル使用メモリ | 12,544 KB |
実行使用メモリ | 28,432 KB |
最終ジャッジ日時 | 2024-12-27 08:17:27 |
合計ジャッジ時間 | 3,380 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 34 WA * 6 |
ソースコード
from bisect import bisect def main(): N, M, K = map(int, input().split()) *A, = map(int, input().split()) A.sort() if A[0] > 0: A = [0]+A N += 1 S = set() if K > 3: for i in range(N): for j in range(i, N): for k in range(j, N): S.add(A[i]+A[j]+A[k]) L = sorted(list(S)) if K == 6: X = L.copy() elif K == 5: T = set() for i in range(N): for j in range(i, N): T.add(A[i]+A[j]) X = sorted(list(T)) elif K == 4: X = A.copy() else: p = bisect(L, M) print(L[p-1]) return else: if K == 1: p = bisect(A, M) print(A[p-1]) return else: for i in range(N): for j in range(i, N): S.add(A[i]+A[j]) L = sorted(list(S)) p = bisect(L, M) print(L[p-1]) return ans = 0 for l in L: if l > M: break p = bisect(X, M-l) ans = max(ans, l+X[p-1]) print(ans) if __name__ == "__main__": main()