結果

問題 No.3310 mod998
コンテスト
ユーザー otoshigo
提出日時 2025-10-25 11:27:37
言語 PyPy3
(7.3.15)
結果
AC  
実行時間 1,714 ms / 2,000 ms
コード長 764 bytes
コンパイル時間 221 ms
コンパイル使用メモリ 82,348 KB
実行使用メモリ 283,168 KB
最終ジャッジ日時 2025-10-25 11:28:27
合計ジャッジ時間 47,172 ms
ジャッジサーバーID
(参考情報)
judge4 / judge1
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 1
other AC * 33
権限があれば一括ダウンロードができます

ソースコード

diff #

import sys
sys.set_int_max_str_digits(0)

MOD = 998
T = int(input())
for _ in range(T):
    N, M = map(int, input().split())
    li = [[-1 for _ in range(MOD)] for _ in range(MOD)]
    val = []
    a = 1
    b = 0
    c = 1
    val.append(c)
    while li[a][c] == -1:
        li[a][c] = b
        a = a * N % MOD
        b += 1
        c = (c + a) % MOD
        val.append(c)
    A = [0 for _ in range(MOD * MOD)]
    C = [0 for _ in range(MOD * MOD)]
    A[0] = a
    C[0] = c
    for i in range(1, MOD * MOD):
        A[i] = N * A[i - 1] % MOD
        C[i] = (C[i - 1] + A[i]) % MOD
    for _ in range(M):
        K = int(input())
        if K <= b:
            print(val[K])
        else:
            K -= b
            K %= b - li[a][c]
            print(C[K])
0