結果
| 問題 | No.3304 INCREASE decrease | 
| コンテスト | |
| ユーザー |  kidodesu | 
| 提出日時 | 2025-10-05 14:15:06 | 
| 言語 | PyPy3 (7.3.15) | 
| 結果 | 
                                AC
                                 
                             | 
| 実行時間 | 604 ms / 2,000 ms | 
| コード長 | 723 bytes | 
| コンパイル時間 | 330 ms | 
| コンパイル使用メモリ | 82,652 KB | 
| 実行使用メモリ | 79,648 KB | 
| 最終ジャッジ日時 | 2025-10-05 14:15:34 | 
| 合計ジャッジ時間 | 15,465 ms | 
| ジャッジサーバーID (参考情報) | judge2 / judge4 | 
(要ログイン)
| ファイルパターン | 結果 | 
|---|---|
| sample | AC * 1 | 
| other | AC * 30 | 
ソースコード
mod = 998244353
def make(t):
    if t % 2:
        k = t // 2
        l = 2
        r = t - 1
        return (l + r) * k // 2 % mod
    else:
        k = t // 2
        l = 1
        r = t - 1
        return (l + r) * k // 2 % mod
        
def made0(t):
    return t // 2
def made2(t):
    if t % 2:
        k = t // 2
        return (1 + k) * k
    else:
        k = t // 2
        return (1 + k) * k - k
def made1(t, r):
    l = r - t - 1
    r = r
    return made2(r) - made2(l)
def main():
    n, k = map(int, input().split())
    n -= 1
    ans = make(n//10**k-1) * make(10**k-1) % mod
    ans += made0(n//10**k) * made1(n%10**k, 10**k-1) % mod
    return ans % mod
for _ in range(int(input())):
    print(main())
            
            
            
        