atcoder#ABC220D. [ABC220D] FG operation

[ABC220D] FG operation

配点 : 400400

問題文

00 以上 99 以下の整数からなる長さ NN の数列 A=(A1,,AN)A=(A_1,\dots,A_N) があり、この順に左から右に並んでいます。

数列の長さが 11 になるまで、操作 FF または操作 GG を繰り返し行います。

  • 操作 FF :左端の 22 つの値 ( x,yx,y とする ) を削除した後、一番左に (x+y)%10(x+y)\%10 を挿入する
  • 操作 GG :左端の 22 つの値 ( x,yx,y とする ) を削除した後、一番左に (x×y)%10(x\times y)\%10 を挿入する

なお、a%ba\%baabb で割った余りを意味します。

K=0,1,,9K=0,1,\dots,9 について、以下の問題に答えてください。

操作手順としてあり得るものは 2N12^{N-1} 通りありますが、このうち最終的に残る値が KK となる操作手順は何通りありますか? ただし答えは非常に大きくなる可能性があるので、998244353998244353 で割った余りを求めてください。

制約

  • 2N1052 \leq N \leq 10^5
  • 0Ai90 \leq A_i \leq 9
  • 入力は全て整数

入力

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

NN

A1A_1 \dots ANA_N

出力

答えを 1010 行に出力せよ。 ただし、ii 行目には K=i1K=i-1 としたときの答えを出力せよ。

3
2 7 6
1
0
0
0
2
1
0
0
0
0

11 回目に操作 FF22 回目に操作 FF を行ったとき:数列は (2,7,6)(9,6)(5)(2,7,6) \to (9,6) \to (5) となります。 11 回目に操作 FF22 回目に操作 GG を行ったとき:数列は (2,7,6)(9,6)(4)(2,7,6) \to (9,6) \to (4) となります。 11 回目に操作 GG22 回目に操作 FF を行ったとき:数列は (2,7,6)(4,6)(0)(2,7,6) \to (4,6) \to (0) となります。 11 回目に操作 GG22 回目に操作 GG を行ったとき:数列は (2,7,6)(4,6)(4)(2,7,6) \to (4,6) \to (4) となります。

5
0 1 2 3 4
6
0
1
1
4
0
1
1
0
2