Submission #76272378
Source Code Expand
import math
def f(n, m):
MOD = 998244353
ans = 0
max_d = 0
temp = n
while temp > 0:
max_d += 1
temp //= 10
p10 = 1
pow10_mod_m = 1
for _ in range(max_d):
min_y = p10
max_y = min(p10 * 10 - 1, n)
count_y = max_y - min_y + 1
if count_y <= 0:
break
pow10_mod_m = (pow10_mod_m * 10) % m
d = (pow10_mod_m - 1 + m) % m
g = math.gcd(m, d)
k = m // g
count_x = n // k
term = ((count_x % MOD) * (count_y % MOD)) % MOD
ans = (ans + term) % MOD
p10 *= 10
return ans
t = int(input())
for _ in range(t):
n, m = map(int, input().split())
print(f(n, m))
Submission Info
| Submission Time | |
|---|---|
| Task | E - x + y ≡ x + y |
| User | gett |
| Language | Python (PyPy 3.11-v7.3.20) |
| Score | 450 |
| Code Size | 835 Byte |
| Status | AC |
| Exec Time | 130 ms |
| Memory | 109044 KiB |
Judge Result
| Set Name | Sample | All | ||||
|---|---|---|---|---|---|---|
| Score / Max Score | 0 / 0 | 450 / 450 | ||||
| Status |
|
|
| Set Name | Test Cases |
|---|---|
| Sample | 00_sample_00.txt |
| All | 00_sample_00.txt, 01_random_00.txt, 01_random_01.txt, 01_random_02.txt, 01_random_03.txt, 01_random_04.txt, 01_random_05.txt |
| Case Name | Status | Exec Time | Memory |
|---|---|---|---|
| 00_sample_00.txt | AC | 48 ms | 79380 KiB |
| 01_random_00.txt | AC | 102 ms | 108916 KiB |
| 01_random_01.txt | AC | 112 ms | 108812 KiB |
| 01_random_02.txt | AC | 128 ms | 109044 KiB |
| 01_random_03.txt | AC | 116 ms | 108804 KiB |
| 01_random_04.txt | AC | 130 ms | 108836 KiB |
| 01_random_05.txt | AC | 127 ms | 108844 KiB |