結果
問題 |
No.3089 Base M Numbers, But Only 0~9
|
ユーザー |
![]() |
提出日時 | 2025-04-04 23:04:23 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 299 ms / 2,000 ms |
コード長 | 768 bytes |
コンパイル時間 | 589 ms |
コンパイル使用メモリ | 82,432 KB |
実行使用メモリ | 81,024 KB |
最終ジャッジ日時 | 2025-04-04 23:04:29 |
合計ジャッジ時間 | 5,938 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge6 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 5 |
other | AC * 19 |
ソースコード
M = int(input()) N = input() L = len(N) mod = 998244353 B = [0] * L A = [0] * L for i in range(L): r = int(N[i]) if r > M-1: B[i], A[i] = 0, 0 continue K = (M-1-r)//10%mod if i == 0 and r == 0: if K < 1: B[i], A[i] = 0, 0 continue B[i] = K A[i] = 10 * K * (K+1)//2%mod else: B[i] = K+1 A[i] = ((K+1)*r+10*(K*(K+1)//2))%mod for b in B: if b == 0: print(0) exit() P = 1 for b in B: P = (P * b) % mod p = [1] * L for j in range(1, L): p[j] = (p[j-1] * M) % mod ans = 0 for i in range(L): inv_Bi = pow(B[i], mod - 2, mod) t = (p[L - 1 - i] * A[i]) % mod t = (t * (P * inv_Bi % mod)) % mod ans = (ans + t) % mod print(ans)