結果
問題 | No.1331 Moving Penguin |
ユーザー |
![]() |
提出日時 | 2021-01-09 08:50:04 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 1,475 ms / 1,500 ms |
コード長 | 669 bytes |
コンパイル時間 | 389 ms |
コンパイル使用メモリ | 82,304 KB |
実行使用メモリ | 91,648 KB |
最終ジャッジ日時 | 2024-11-07 15:02:06 |
合計ジャッジ時間 | 53,309 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 49 |
ソースコード
def main1(n,a):mod=10**9+7dp=[0]*(n+1)dp[1]=1bd=int(n**0.5)memo=[[0]*(bd+1) for _ in range(bd+1)]dp[1]=1num1=0for i in range(1,n+1):x=a[i-1]for j in range(1,bd+1):dp[i]+=memo[j][i%j]dp[i]%=moddp[i]+=num1dp[i]%=modif dp[i]==0:continueif i==n:breakdp[i+1]+=dp[i]dp[i+1]%=modif x>bd:now=i+xwhile now<=n:dp[now]+=dp[i]dp[now]%=modnow+=xelif x==1:num1+=dp[i]num1%=moddp[i+1]-=dp[i]else:memo[x][i%x]+=dp[i]memo[x][i%x]%=modreturn dp[n]n=int(input())a=list(map(int,input().split()))print(main1(n,a))