提出 #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 | ||||
| 結果 |
|
|
| セット名 | テストケース |
|---|---|
| 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 |