結果

問題 No.634 硬貨の枚数1
コンテスト
ユーザー ああ
提出日時 2026-05-15 21:32:45
言語 PyPy3
(7.3.17)
コンパイル:
pypy3 -mpy_compile _filename_
実行:
pypy3 _filename_
結果
TLE  
実行時間 -
コード長 555 bytes
記録
記録タグの例:
初AC ショートコード 純ショートコード 純主流ショートコード 最速実行時間
コンパイル時間 185 ms
コンパイル使用メモリ 85,376 KB
実行使用メモリ 89,984 KB
最終ジャッジ日時 2026-05-15 21:33:05
合計ジャッジ時間 5,956 ms
ジャッジサーバーID
(参考情報)
judge1_0 / judge3_0
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 3
other AC * 11 TLE * 1 -- * 63
権限があれば一括ダウンロードができます

ソースコード

diff #
raw source code

n=int(input())
z=[0]*(n+1)
q,w=0,n
while w-q>1:
    m=(q+w)//2
    if (m+1)*m//2<=n:
        q=m
    else:
        w=m
x=[0]*q
y=[(i+1)*(i+2)//2 for i in range(q)]
for i in range(q-1,-1,-1):
    p=0
    for j in range(y[i],n+1,y[i]):
        if z[j]:
            break
        p+=1
    x[i]=p
dp=[1<<60]*(n+1);p=0;dp[0]=0
for i in y:
    for j in range(n,-1,-1):
        if dp[j]==1<<60:
            continue
        for l in range(1,x[p]+1):
            if j+l*i>n:
                break
            dp[j+l*i]=min(dp[j+l*i],dp[j]+l)
    p+=1
print(dp[n])
0