結果
| 問題 |
No.2302 Carry X Times
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2023-04-03 01:40:58 |
| 言語 | PyPy3 (7.3.15) |
| 結果 |
AC
|
| 実行時間 | 350 ms / 2,000 ms |
| コード長 | 922 bytes |
| コンパイル時間 | 161 ms |
| コンパイル使用メモリ | 82,360 KB |
| 実行使用メモリ | 79,440 KB |
| 最終ジャッジ日時 | 2024-09-25 00:43:03 |
| 合計ジャッジ時間 | 6,352 ms |
|
ジャッジサーバーID (参考情報) |
judge4 / judge1 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 1 |
| other | AC * 24 |
ソースコード
import sys
from collections import deque, Counter
input = lambda: sys.stdin.readline().rstrip()
ii = lambda: int(input())
mi = lambda: map(int, input().split())
li = lambda: list(mi())
inf = 2 ** 63 - 1
mod = 998244353
d = {}
def f(na, nb, x, c):
if (na, nb, x, c) in d:
return d[na, nb, x, c]
ans = 0
if na == nb == 0:
if x == 0:
ans = 1
else:
ans = 0
else:
for a in range(min(na + 1, 10)):
for b in range(min(nb + 1, 10)):
if a + b + c < 10:
ans += f((na - a) // 10, (nb - b) // 10, x, 0)
elif x > 0:
ans += f((na - a) // 10, (nb - b) // 10, x - 1, 1)
d[na,nb,x,c] = ans % mod
return d[na,nb,x,c]
def dsum(x):
ans = 0
while x > 0:
ans += x % 10
x //= 10
return ans
for _ in range(ii()):
n, x = mi()
print(f(n, n, x, 0))