AT_arc230_c [ARC230C] Buildings
Description
$ 2 $ 以上の整数 $ N $ と $ N-1 $ 個の整数 $ C_1,C_2,\dots ,C_{N-1} $ が与えられます.
$ N $ 個の建物が数直線上に一列に並んでいます. $ i $ 個目の建物は位置 $ i $ に建っており,高さは $ H_i $ です. ここで $ (H_1,H_2,\dots ,H_N) $ は $ (1,2,\dots ,N) $ の順列であることが分かっていますが,具体的な $ H_1,H_2,\dots ,H_N $ は分かっていません.
次の条件が $ x=1,2,\dots, N-1 $ のすべてについて成り立つような $ (H_1,H_2,\dots, H_N) $ としてあり得るものの個数を $ 998244353 $ で割ったあまりを求めてください.
- 位置 $ x+0.5 $ から見える建物の個数は $ C_x $ 個である. ここで, $ i $ 番目の建物が見えるのは,位置 $ x+0.5 $ と位置 $ i $ の間に $ H_i $ より高さが高い建物が存在しないとき,またそのときに限る.
Input Format
入力は以下の形式で標準入力から与えられる.
> $ N $ $ C_1 $ $ C_2 $ $ \dots $ $ C_{N-1} $
Output Format
答えを出力せよ.
Explanation/Hint
### Sample Explanation 1
たとえば, $ (H_1,H_2,H_3,H_4)=(3,4,2,1) $ は条件を満たします. 実際,
- $ x=1 $ について,位置 $ x+0.5=1.5 $ から見える建物は $ 1,2 $ 個目の建物で,あわせて $ 2=C_1 $ 個
- $ x=2 $ について,位置 $ x+0.5=2.5 $ から見える建物は $ 2,3 $ 個目の建物で,あわせて $ 2=C_2 $ 個
- $ x=3 $ について,位置 $ x+0.5=3.5 $ から見える建物は $ 2,3,4 $ 個目の建物で,あわせて $ 3=C_3 $ 個
となります. 条件を満たす $ (H_1,H_2,H_3,H_4) $ はこれを含めて $ 3 $ 通りあります.
### Sample Explanation 2
条件を満たす $ (H_1,H_2,\dots, H_N) $ が存在しないこともあります.
### Constraints
- $ 2\le N\le 2\times 10^5 $
- $ 1\le C_x\le N $
- 入力される値は全て整数