問題一覧 > 通常問題

No.2807 Have Another Go (Easy)

レベル : / 実行時間制限 : 1ケース 3.000秒 / メモリ制限 : 512 MB / 標準ジャッジ問題
タグ : / 解いたユーザー数 71
作問者 : tfltkpc / テスター : hirayuu_yc highlighter Magentor keisuke6 Yoyoyo8128 zeta7532 silv723 fact493
0 ProblemId : 11074 / 出題時の順位表 / 自分の提出
問題文最終更新日: 2024-07-12 20:53:54

注意

この問題は Have Another Go (Hard) の制約緩和版です。Hard版との違いは、6N5×1056\leq N\leq 5 \times 10^{5}M=2M=2 であることです。

ストーリー

必ずしもこの項を読む必要はない。

tfl君は NN 個のマスを 11 周して落ちているコインを集めるすごろくで遊んでいます。しかし...

tfl君「11 周したけど全然コインが取れなかった...」

highlighterはかせ「それじゃあ、22 周してもいいことにしよう。これで億万長者間違いなしじゃ!」

tfl君「22 周じゃあんま変わらないと思うんだけど...」

highlighterはかせ「もっと多くすると通り数を求めるのが大変じゃろう」

tfl君「え、いや通り数を求めるつもりはないんだけど!?」

問題文

tfl君は次のようなゲームで遊んでいます。

  • 変数 XX と空の配列 YY を用意する。はじめ XX の値は 00 に等しい。
  • 以下の一連の操作を行う。
    • XXYY の末尾に付け加える。
    • 11 以上 66 以下の整数が等確率で出るサイコロを振る。
    • XX にサイコロで出た目の数を加える。
    • XNMX \geq NM なら操作を終える。そうでないなら、またこの操作を繰り返す。

ただし、この問題では M=2M=2 です。

i=1,2,ki=1,2,\ldots k について、以下の問いに答えてください。

  • 操作終了後、ある YY の要素 yy が存在して、 yCi(modN)y \equiv C_{i} \pmod N となるようなサイコロの目の出方の通り数を求め、 998244353998244353 で割った余りを出力してください。
  • ただし、サイコロを振る操作は毎回独立です。

    制約

    • 6N5×1056 \leq N \leq 5 \times 10^{5}
    • M=2M=2
    • 1k50001 \leq k \leq 5000
    • 1Ci<N1 \leq C_{i} \lt N
    • 入力はすべて整数

    入力

    入力は以下の形式で標準入力から与えられる。
    N   M   kN~~~M~~~k
    C1   C2  CkC_{1} ~~~ C_{2} ~ \ldots ~ C_{k}
    

    出力

    kk 行出力せよ。 ii 行目には、 CiC_{i} に対する答えを 998244353998244353 で割った余りを出力せよ。

    サンプル

    サンプル1
    入力
    7 2 4
    1 2 3 4
    出力
    29503
    29564
    29684
    29920

    提出するには、Twitter 、GitHub、 Googleもしくは右上の雲マークをクリックしてアカウントを作成してください。