atcoder#ABC268G. [ABC268G] Random Student ID

[ABC268G] Random Student ID

配点 : 600600

問題文

高橋小学校には NN 人の新入生がおり、i=1,2,,Ni = 1, 2, \ldots, N について ii 番目の新入生の名前は SiS_i (英小文字のみからなる文字列)です。 NN 人の名前は相異なります。

NN 人の新入生には、名前が辞書順で小さい者から順に 1,2,3,,N1, 2, 3, \ldots, N と学籍番号が付与されます。 ただしその際には、a が最小で z が最大である通常の英小文字の順序の代わりに、下記で定まる順序を用います。

  • まず高橋校長が、長さ 2626 の文字列 abcdefghijklmnopqrstuvwxyz を並べ替えて得られる 26!26! 個の文字列の中から 11 つを、等確率でランダムに文字列 PP として選ぶ。
  • PP で前にある英小文字ほど小さい英小文字とみなす。

NN 人の新入生それぞれについて、与えられる学籍番号の期待値を mod998244353\mathrm{mod}\, 998244353 で出力してください(注記参照)。

辞書順で小さいとは?

文字列 S=S1S2SSS = S_1S_2\ldots S_{|S|} が文字列 T=T1T2TTT = T_1T_2\ldots T_{|T|} より辞書順で小さいとは、下記の 1. と 2. のどちらかが成り立つことを言います。 ここで、S,T|S|, |T| はそれぞれ S,TS, T の長さを表します。

  1. S<T|S| \lt |T| かつ S1S2SS=T1T2TSS_1S_2\ldots S_{|S|} = T_1T_2\ldots T_{|S|}
  2. ある整数 1imin{S,T}1 \leq i \leq \min\lbrace |S|, |T| \rbrace が存在して、下記の 22 つがともに成り立つ。
    • S1S2Si1=T1T2Ti1S_1S_2\ldots S_{i-1} = T_1T_2\ldots T_{i-1}
    • SiS_iTiT_i より小さい文字である。

注記

求める期待値は必ず有理数となることが証明できます。またこの問題の制約下では、その値を互いに素な 22 つの整数 PP, QQ を用いて PQ\frac{P}{Q} と表したとき、R×QP(mod998244353)R \times Q \equiv P\pmod{998244353} かつ 0R<9982443530 \leq R \lt 998244353 を満たす整数 RR がただ一つ存在することが証明できます。この RR を求めてください。

制約

  • 2N2 \leq N
  • NN は整数
  • SiS_i は英小文字のみからなる長さ 11 以上の文字列
  • 与えられる文字列の長さの総和は 5×1055 \times 10^5 以下
  • ijSiSji \neq j \Rightarrow S_i \neq S_j

入力

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

NN

S1S_1

S2S_2

\vdots

SNS_N

出力

NN行出力せよ。 i=1,2,,Ni = 1, 2, \ldots, N について、ii 行目には ii 番目の新入生に与えられる学籍番号の期待値を mod998244353\mathrm{mod}\, 998244353 で出力せよ。

3
a
aa
ab
1
499122179
499122179

11 番目の新入生に与えられる学籍番号の期待値は 11 であり、2,32, 3 番目の新入生に与えられる学籍番号の期待値は 52\frac{5}{2} です。

答えを mod998244353\mathrm{mod}\, 998244353 で出力することに注意してください。 例えば、2,32, 3 番目の新入生についての出力では、求める期待値が 52\frac{5}{2} であり、 2×4991221795(mod998244353)2 \times 499122179 \equiv 5\pmod{998244353} が成り立つので、 499122179499122179 を出力します。

3
a
aa
aaa
1
2
3