結果
問題 | No.189 SUPER HAPPY DAY |
ユーザー |
![]() |
提出日時 | 2021-04-29 18:18:27 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 749 ms / 5,000 ms |
コード長 | 747 bytes |
コンパイル時間 | 826 ms |
コンパイル使用メモリ | 82,532 KB |
実行使用メモリ | 140,488 KB |
最終ジャッジ日時 | 2024-07-16 03:22:21 |
合計ジャッジ時間 | 7,337 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 23 |
ソースコード
from itertools import productM,D = map(int, input().split())def count(x):a = str(x)n = len(a)#配列は末から#数字和は制約から2000を超えることはないdp=[[[0] * 2100 for _ in range(2)] for _ in range(n+1)]dp[0][0][0] = 1#条件に合わせてDPfor i, less, suujiwa in product(range(n), (0,1), range(2000)):max_d = 9 if less else int(a[i])for d in range(max_d+1):less_ = less or d < max_dsuujiwa_ = suujiwa + ddp[i + 1][less_][suujiwa_] += dp[i][less][suujiwa]return dp[n]m = count(M)d = count(D)ret = 0for i in range(1,2000):ret += (m[False][i]+m[True][i])*(d[False][i]+d[True][i])mod = 10**9+9print(ret%mod)