結果
問題 |
No.260 世界のなんとか3
|
ユーザー |
![]() |
提出日時 | 2021-01-27 02:30:04 |
言語 | Python3 (3.13.1 + numpy 2.2.1 + scipy 1.14.1) |
結果 |
WA
|
実行時間 | - |
コード長 | 1,666 bytes |
コンパイル時間 | 99 ms |
コンパイル使用メモリ | 12,928 KB |
実行使用メモリ | 72,320 KB |
最終ジャッジ日時 | 2024-06-24 00:05:43 |
合計ジャッジ時間 | 3,739 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | WA * 2 MLE * 1 |
other | MLE * 1 -- * 26 |
ソースコード
mod = 10 ** 9 + 7 A, B = input().split() N = len(B) A = A.zfill(N) print(A, B) dp = [[[[[[0]*8 for _ in range(2)] for _ in range(3)] for _ in range(2)] for _ in range(2)] for _ in range(N+1)] dp[0][0][0][0][0][0] = 1 for i in range(N): na = int(A[i]) nb = int(B[i]) for ja in range(2): for jb in range(2): for k in range(3): for l in range(2): for m in range(8): for d in range(10): ni = i + 1 nja = ja njb = jb nk = (k + d) % 3 nl = l nm = (10 * m + d) % 8 if nja == 0: if d < na: continue if d > na: nja = 1 if njb == 0: if d > nb: continue if d < nb: njb = 1 if d == 3: nl = 1 dp[ni][nja][njb][nk][nl][nm] += dp[i][ja][jb][k][l][m] dp[ni][nja][njb][nk][nl][nm] %= mod ans = 0 for ja in range(2): for jb in range(2): for k in range(3): for l in range(2): if k == 0 or l == 1: for m in range(1, 8): ans += dp[N][ja][jb][k][l][m] ans %= mod print(ans)