結果

問題 No.1331 Moving Penguin
ユーザー Navier_BoltzmannNavier_Boltzmann
提出日時 2023-09-13 11:28:12
言語 PyPy3
(7.3.15)
結果
AC  
実行時間 910 ms / 1,500 ms
コード長 757 bytes
コンパイル時間 279 ms
コンパイル使用メモリ 82,356 KB
実行使用メモリ 92,672 KB
最終ジャッジ日時 2024-06-30 20:47:59
合計ジャッジ時間 36,805 ms
ジャッジサーバーID
(参考情報)
judge5 / judge1
このコードへのチャレンジ
(要ログイン)

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 AC 80 ms
69,564 KB
testcase_01 AC 47 ms
56,424 KB
testcase_02 AC 46 ms
56,248 KB
testcase_03 AC 47 ms
56,288 KB
testcase_04 AC 828 ms
92,672 KB
testcase_05 AC 855 ms
91,392 KB
testcase_06 AC 824 ms
91,468 KB
testcase_07 AC 854 ms
91,292 KB
testcase_08 AC 825 ms
91,444 KB
testcase_09 AC 853 ms
91,480 KB
testcase_10 AC 855 ms
91,340 KB
testcase_11 AC 854 ms
91,152 KB
testcase_12 AC 854 ms
91,904 KB
testcase_13 AC 823 ms
91,140 KB
testcase_14 AC 854 ms
91,032 KB
testcase_15 AC 837 ms
91,728 KB
testcase_16 AC 854 ms
91,660 KB
testcase_17 AC 829 ms
91,172 KB
testcase_18 AC 851 ms
91,216 KB
testcase_19 AC 827 ms
91,616 KB
testcase_20 AC 831 ms
91,588 KB
testcase_21 AC 829 ms
91,264 KB
testcase_22 AC 842 ms
91,524 KB
testcase_23 AC 852 ms
91,400 KB
testcase_24 AC 816 ms
91,196 KB
testcase_25 AC 822 ms
91,420 KB
testcase_26 AC 834 ms
92,472 KB
testcase_27 AC 840 ms
92,068 KB
testcase_28 AC 833 ms
92,032 KB
testcase_29 AC 844 ms
92,196 KB
testcase_30 AC 209 ms
77,424 KB
testcase_31 AC 392 ms
84,504 KB
testcase_32 AC 183 ms
77,400 KB
testcase_33 AC 290 ms
82,240 KB
testcase_34 AC 483 ms
86,500 KB
testcase_35 AC 886 ms
91,956 KB
testcase_36 AC 897 ms
91,564 KB
testcase_37 AC 882 ms
91,736 KB
testcase_38 AC 219 ms
77,844 KB
testcase_39 AC 796 ms
91,832 KB
testcase_40 AC 335 ms
82,916 KB
testcase_41 AC 825 ms
91,440 KB
testcase_42 AC 895 ms
91,696 KB
testcase_43 AC 879 ms
91,556 KB
testcase_44 AC 894 ms
91,552 KB
testcase_45 AC 905 ms
91,500 KB
testcase_46 AC 910 ms
91,724 KB
testcase_47 AC 903 ms
91,820 KB
testcase_48 AC 856 ms
91,336 KB
権限があれば一括ダウンロードができます

ソースコード

diff #

from collections import *
from itertools import *
from functools import *
from heapq import *
import sys,math
input = sys.stdin.readline

N = int(input())
A = [0]+list(map(int,input().split()))

mod = 10**9 + 7

B = math.ceil(math.sqrt(N))
S = [[0]*(B+1) for _ in range(B)]
dp = [0]*(N+1)

dp[1] = 1
a = A[1]
if a>B:
    for i in range(1+a,N+1,a):
        dp[i] = (dp[i]+dp[1])%mod
else:
    S[1%a][a] = (S[1%a][a] + dp[1])%mod
    
for i in range(2,N+1):
    
    if A[i-1]!=1:
        dp[i] = (dp[i]+dp[i-1])%mod
    
    for j in range(1,B+1):
        dp[i] = (dp[i] + S[i%j][j])%mod
    
    a = A[i]
    if a>B:
        for j in range(i+a,N+1,a):
            dp[j] = (dp[j]+dp[i])%mod
    else:
        S[i%a][a] = (S[i%a][a] + dp[i])%mod
print(dp[-1])
0