結果

問題 No.3310 mod998
コンテスト
ユーザー sasa8uyauya
提出日時 2025-10-24 23:27:54
言語 PyPy3
(7.3.15)
結果
RE  
実行時間 -
コード長 581 bytes
コンパイル時間 357 ms
コンパイル使用メモリ 82,364 KB
実行使用メモリ 77,776 KB
最終ジャッジ日時 2025-10-24 23:28:02
合計ジャッジ時間 8,082 ms
ジャッジサーバーID
(参考情報)
judge2 / judge4
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 1
other AC * 23 RE * 10
権限があれば一括ダウンロードができます

ソースコード

diff #

T=int(input())
M=998
for _ in range(T):
  n,m=map(int,input().split())
  p=[1]
  d={1:0}
  while 1:
    np=p[-1]*n%M
    if np in d:
      l=d[np]
      break
    d[np]=len(p)
    p+=[np]
  pa=p[:l]
  pb=p[l:]
  for i in range(1,len(pa)):
    pa[i]+=pa[i-1]
    pa[i]%=M
  for i in range(1,len(pb)):
    pb[i]+=pb[i-1]
    pb[i]%=M
  for i in range(m):
    k=int(input())+1
    if k<=len(pa):
      print(pa[k-1]%M)
      continue
    a=pa[-1] if len(pa)>0 else 0
    k-=len(pa)
    p2=k%len(pb)
    p4=(k//len(pb))%M
    a+=pb[-1]*p4
    if p2!=0:
      a+=pb[p2-1]
    print(a%M)
0