結果
問題 |
No.2329 Nafmo、イカサマをする
|
ユーザー |
![]() |
提出日時 | 2025-03-20 21:01:43 |
言語 | PyPy3 (7.3.15) |
結果 |
WA
|
実行時間 | - |
コード長 | 806 bytes |
コンパイル時間 | 162 ms |
コンパイル使用メモリ | 82,524 KB |
実行使用メモリ | 54,248 KB |
最終ジャッジ日時 | 2025-03-20 21:01:48 |
合計ジャッジ時間 | 2,834 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 14 WA * 26 |
ソースコード
def main(): import sys input_line = sys.stdin.read().split() idx = 0 N = int(input_line[idx]); idx +=1 M = int(input_line[idx]); idx +=1 K = int(input_line[idx]); idx +=1 A = list(map(int, input_line[idx:idx+N])) if N > 0 else [] sum_max = [float('-inf')] * (K + 1) sum_max[0] = 0 # 0回選んだときの合計は0 for c in range(1, K + 1): prev_sum = sum_max[c - 1] if prev_sum == float('-inf'): continue # 前のステップが到達不可ならスキップ for a in A: new_sum = prev_sum + a if new_sum <= M and new_sum > sum_max[c]: sum_max[c] = new_sum max_score = max(filter(lambda x: x <= M, sum_max)) print(max_score) if __name__ == '__main__': main()