結果
| 問題 | No.260 世界のなんとか3 |
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2022-10-28 19:40:31 |
| 言語 | PyPy3 (7.3.15) |
| 結果 |
MLE
|
| 実行時間 | - |
| コード長 | 1,601 bytes |
| コンパイル時間 | 206 ms |
| コンパイル使用メモリ | 82,564 KB |
| 実行使用メモリ | 77,284 KB |
| 最終ジャッジ日時 | 2024-07-05 22:54:38 |
| 合計ジャッジ時間 | 6,297 ms |
|
ジャッジサーバーID (参考情報) |
judge1 / judge3 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 1 MLE * 26 |
ソースコード
MOD = 10 ** 9 + 7
def solve(S):
if not S:
return 0
dp = [[0] * 2 for _ in range(24)]
for s in range(1, S[0]):
if s == 3:
dp[s][1] = 1
else:
dp[s][0] = 1
eqi = S[0]
if S[0] == 3:
eqj = 1
else:
eqj = 0
for s in S[1:]:
ndp = [[0] * 2 for _ in range(24)]
for x in range(10):
for i in range(24):
ni = (i * 10 + x) % 24
for j in range(2):
if x == 3:
nj = 1
else:
nj = j
ndp[ni][nj] += dp[i][j]
ndp[ni][nj] %= MOD
for i in range(1, 10):
if i == 3:
ndp[i][1] += 1
else:
ndp[i][0] += 1
for i in range(s):
ni = (eqi * 10 + i) % 24
if i == 3:
nj = 1
else:
nj = eqj
ndp[ni][nj] += 1
eqi *= 10
eqi += s
eqi %= 24
if s == 3:
eqj = 1
dp = ndp
dp[eqi][eqj] += 1
ret = 0
for i in range(24):
if i % 8 == 0:
continue
ret += dp[i][1]
if i % 3 == 0:
ret += dp[i][0]
ret %= MOD
return ret
A, B = input().split()
A = list(map(int, A))
B = list(map(int, B))
i = len(A) - 1
while 1:
A[i] -= 1
if A[i] == -1:
A[i] = 9
i -= 1
else:
break
if A[0] == 0:
A = A[1:]
ans = solve(B) - solve(A)
print(ans)