結果

問題 No.385 カップ麺生活
ユーザー 👑 rin204
提出日時 2022-07-10 14:55:23
言語 PyPy3
(7.3.15)
結果
AC  
実行時間 61 ms / 2,000 ms
コード長 497 bytes
コンパイル時間 390 ms
コンパイル使用メモリ 82,560 KB
実行使用メモリ 64,384 KB
最終ジャッジ日時 2025-01-03 05:44:57
合計ジャッジ時間 3,770 ms
ジャッジサーバーID
(参考情報)
judge3 / judge2
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 3
other AC * 32
権限があれば一括ダウンロードができます

ソースコード

diff #

N = 200000
isprime = [True] * N
isprime[0] = isprime[1] = False
for i in range(2, int(N ** 0.5 + 1)):
    if not isprime[i]:
        continue
    for j in range(i * i, N, i):
        isprime[j] = False

m = int(input())
n = int(input())
C = list(map(int, input().split()))
dp = [-1 << 30] * (m + 1)
dp[0] = 0
for c in C:
    for i in range(m - c + 1):
        dp[i + c] = max(dp[i + c], dp[i] + 1)
ans = max(dp)
for i in range(m + 1):
    if isprime[m - i]:
        ans += max(0, dp[i])
print(ans)
0