提出 #23743953


ソースコード 拡げる

MOD=10**9+7
N=int(input())
A=list(map(int,input().split()))

# SUM[i]=sum(A[:i])
SUM=[0]
for a in A: SUM.append(SUM[-1]+a)

# SUM[i]%j==sum[x]%j となるような i 未満の最大の x が idx[i][j]、存在しなければ -1
idx=[[-1]*(N+1) for _ in range(N+1)]

# 直前に SUM[x]%i==j となった x が pre[i][j]、存在しなければ -1
pre=[[-1]*(N+1) for _ in range(N+1)]

for i in range(N+1):
  for j in range(1,N+1):
    idx[i][j]=pre[j][SUM[i]%j]
    pre[j][SUM[i]%j]=i

# DP[i][j] = i 番目までを j 個に区切る場合の数
DP=[[0]*(N+1) for i in range(N+1)]
DP[0][0]=1
for i in range(1,N+1):
  for j in range(1,N+1):
    if idx[i][j]!=-1:
      DP[i][j]=(DP[idx[i][j]][j]+DP[idx[i][j]][j-1])%MOD

print(sum(DP[N])%MOD)

提出情報

提出日時
問題 E - Mod i
ユーザ kyopro_friends
言語 PyPy3 (7.3.0)
得点 500
コード長 768 Byte
結果 AC
実行時間 1614 ms
メモリ 272448 KiB

ジャッジ結果

セット名 Sample All
得点 / 配点 0 / 0 500 / 500
結果
AC × 3
AC × 31
セット名 テストケース
Sample example0.txt, example1.txt, example2.txt
All 000.txt, 001.txt, 002.txt, 003.txt, 004.txt, 005.txt, 006.txt, 007.txt, 008.txt, 009.txt, 010.txt, 011.txt, 012.txt, 013.txt, 014.txt, 015.txt, 016.txt, 017.txt, 018.txt, 019.txt, 020.txt, 021.txt, 022.txt, 023.txt, 024.txt, 025.txt, 026.txt, 027.txt, example0.txt, example1.txt, example2.txt
ケース名 結果 実行時間 メモリ
000.txt AC 62 ms 61904 KiB
001.txt AC 51 ms 62060 KiB
002.txt AC 53 ms 62112 KiB
003.txt AC 1573 ms 272448 KiB
004.txt AC 1593 ms 272332 KiB
005.txt AC 1581 ms 271916 KiB
006.txt AC 1596 ms 272100 KiB
007.txt AC 413 ms 127372 KiB
008.txt AC 1342 ms 253772 KiB
009.txt AC 81 ms 68308 KiB
010.txt AC 1581 ms 272204 KiB
011.txt AC 1568 ms 272356 KiB
012.txt AC 1591 ms 272096 KiB
013.txt AC 1590 ms 272104 KiB
014.txt AC 1603 ms 272132 KiB
015.txt AC 1614 ms 272336 KiB
016.txt AC 409 ms 127220 KiB
017.txt AC 755 ms 272332 KiB
018.txt AC 1538 ms 272220 KiB
019.txt AC 62 ms 62048 KiB
020.txt AC 52 ms 61804 KiB
021.txt AC 1343 ms 272140 KiB
022.txt AC 1395 ms 272360 KiB
023.txt AC 1349 ms 272428 KiB
024.txt AC 1403 ms 272004 KiB
025.txt AC 1499 ms 271996 KiB
026.txt AC 1514 ms 272320 KiB
027.txt AC 1181 ms 272364 KiB
example0.txt AC 63 ms 62080 KiB
example1.txt AC 51 ms 61980 KiB
example2.txt AC 53 ms 62156 KiB