atcoder#ARC146E. [ARC146E] Simple Speed

[ARC146E] Simple Speed

配点 : 800800

問題文

長さ NN の正整数列 A=(A1,A2,,AN)A=(A_1,A_2,\dots,A_N) が与えられます。

11 以上 NN 以下の整数からなる整数列 BB のうち、以下の条件を全て満たすものの個数を 998244353998244353 で割ったあまりを出力してください。

  • 1iN1 \le i \le N を満たす整数 ii に対し、BB の中に ii はちょうど AiA_i 個存在する。
  • 1iB11 \le i \le |B|-1 を満たす整数 ii に対し、BiBi+1=1|B_i - B_{i+1}|=1 が成り立つ。

制約

  • 1N2×1051 \le N \le 2 \times 10^5
  • 1Ai2×1051 \le A_i \le 2 \times 10^5
  • 入力はすべて整数である。

入力

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

NN

A1A_1 A2A_2 \dots ANA_N

出力

答えを出力せよ。

3
2 3 1
6

BB としてあり得るものは、以下の 66 通りがあります。

  • (1,2,1,2,3,2)(1,2,1,2,3,2)
  • (1,2,3,2,1,2)(1,2,3,2,1,2)
  • (2,1,2,1,2,3)(2,1,2,1,2,3)
  • (2,1,2,3,2,1)(2,1,2,3,2,1)
  • (2,3,2,1,2,1)(2,3,2,1,2,1)
  • (3,2,1,2,1,2)(3,2,1,2,1,2)

よって、解は 66 です。

1
200000
0

条件を満たす BB が存在しないこともあります。

6
12100 31602 41387 41498 31863 12250
750337372