結果
問題 |
No.1086 桁和の桁和2
|
ユーザー |
![]() |
提出日時 | 2020-06-19 22:10:18 |
言語 | PyPy3 (7.3.15) |
結果 |
WA
|
実行時間 | - |
コード長 | 681 bytes |
コンパイル時間 | 183 ms |
コンパイル使用メモリ | 82,172 KB |
実行使用メモリ | 116,636 KB |
最終ジャッジ日時 | 2024-07-03 14:51:19 |
合計ジャッジ時間 | 8,887 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 5 |
other | AC * 28 WA * 3 |
ソースコード
N=int(input()) L=list(map(int,input().split())) R=list(map(int,input().split())) D=list(map(int,input().split())) for i in range(N-1): if D[i]!=0 and D[i+1]==0: print(0) exit() DP=[[0]*9 for i in range(N+1)] DP[0][0]=1 mod=10**9+7 X,Y=0,0 inv9=pow(9,mod-2,mod) for i in range(N): if D[i]==0: DP[i+1][0]=1 continue X=(pow(10,R[i]%(mod-1),mod)-1)*inv9%mod Y=(pow(10,L[i]%(mod-1),mod)-1)*inv9%mod for j in range(9): for k in range(9): DP[i+1][(j+k)%9]=(DP[i+1][(j+k)%9]+DP[i][j]*((0 if k else 1)+X-Y))%mod for j in range(9): if j!=D[i]%9: DP[i+1][j]=0 if set(D)=={0,9} or set(D)==set([9]): DP[N][0]=(DP[N][0]-1)%mod print(sum(DP[N]))