結果
問題 | No.1086 桁和の桁和2 |
ユーザー |
![]() |
提出日時 | 2020-01-20 20:22:33 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 526 ms / 3,000 ms |
コード長 | 907 bytes |
コンパイル時間 | 474 ms |
コンパイル使用メモリ | 82,048 KB |
実行使用メモリ | 108,636 KB |
最終ジャッジ日時 | 2024-07-22 17:39:00 |
合計ジャッジ時間 | 11,727 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 5 |
other | AC * 31 |
ソースコード
#writer解mod = 10**9 + 7n = int(input())l = list(map(int, input().split()))r = list(map(int, input().split()))d = list(map(int, input().split()))def calc(l, r, di, dj):#(10^l <= a < 10^r or a=0) and f(di+f(a))=djを満たすaの数if dj == 0:if di == 0:#di==dj==0のとき、a=0の1通りのみreturn 1else:#di!=dj==0のとき、条件を満たすaは存在しないreturn 0else:#aの総数は(10^r - 10^l)/9で一般化される#di==djの時、a=0の1通りが加算されるans_r = pow(10, r, mod) * pow(9, mod - 2, mod)#逆元ですans_l = pow(10, l, mod) * pow(9, mod - 2, mod)ans=(ans_r + (mod - ans_l)) % modif di == dj:ans += 1ans %= mod#これ必要ですか?return ansans = calc(l[0], r[0], 0, d[0])for i in range(1, n):ans *= calc(l[i], r[i], d[i - 1], d[i])ans %= modprint(ans)