atcoder#ABC272H. [ABC272Ex] Flipping Coins 2

[ABC272Ex] Flipping Coins 2

配点 : 600600

問題文

0,1,,N10,1,\ldots,N-1 の番号がついた NN 枚のコインが並べられています。はじめ、全てのコインは表を向いています。また、 00 以上 N1N-1 以下の整数からなる長さ NN の数列 AA が与えられます。

すぬけ君は (1,,N)(1,\ldots,N) を並び替えて得られる順列 p=(p1,p2,,pN)p=(p_1,p_2,\ldots,p_N) を等確率で 11 つ選び NN 回操作を行います。 i (1iN)i\ (1\leq i \leq N) 回目の操作では以下の処理が行われます。

  • コイン (i1)modN(i-1) \bmod N、コイン(i1+1)modN(i-1+1 ) \bmod N\ldots、コイン (i1+Api)modN(i -1+ A_{p_i}) \bmod N(Api+1)(A_{p_i}+1) 枚のコインを全てひっくり返す。

NN 回の操作の後、表向きのコインの枚数を kk としてすぬけ君はお母さんから kk 円もらえます。

すぬけ君が得られるお金の期待値を mod 998244353\text{mod } 998244353 で求めてください。

期待値 $\text{mod } 998244353$ の定義

この問題で求める期待値は必ず有理数になることが証明できます。 また、この問題の制約下では、求める期待値を既約分数 yx\frac{y}{x} で表したときに xx998244353998244353 で割り切れないことが保証されます。

このとき xzy(mod998244353)xz \equiv y \pmod{998244353} を満たすような 00 以上 998244352998244352 以下の整数 zz が一意に定まります。この zz を答えてください。

制約

  • 1N2×1051 \leq N\leq 2\times 10^5
  • 0AiN10\leq A_i \leq N-1
  • 入力は全て整数

入力

入力は以下の形式で標準入力から与えられる。

NN

A1A_1 A2A_2 \ldots ANA_N

出力

答えを出力せよ。

2
0 1
1

pp としてありうるのは (1,2)(1,2)(2,1)(2,1) です。

  • pp として (1,2)(1,2) が選ばれたとき

11 回目の操作ではコイン 00 をひっくり返します。 22 回目の操作ではコイン 11 とコイン 00 をひっくり返します。最終的に表向きのコインはコイン 0011 枚なので、11 円もらえます。

  • pp として (2,1)(2,1) が選ばれたとき

11 回目の操作ではコイン 00 とコイン 11 をひっくり返します。 22 回目の操作ではコイン 11 をひっくり返します。最終的に表向きのコインはコイン 1111 枚なので、11 円もらえます。

以上より、得られるお金の期待値は 11 円 です。

4
3 1 1 2
665496237

期待値を mod 998244353\text{mod } 998244353 で出力してください。