AT_awtf2026algo_b Window Records
Description
長さ $ N $ の正整数列 $ A=(A_1,A_2,\ldots,A_N) $ が与えられます. 以下の条件をすべて満たす長さ $ N $ の正整数列 $ x=(x_1,x_2,\ldots,x_N) $ の個数を $ 998244353 $ で割った余りを求めてください.
- すべての $ i $ に対し $ x_i \leq A_i $ が成り立つ.
- ある $ (1,2,\ldots,2N-1) $ の順列 $ p=(p_1,p_2,\ldots,p_{2N-1}) $ が存在し,以下の条件を満たす.
- 各 $ i $ ( $ 1 \leq i \leq N $ ) に対し,長さ $ N $ の数列 $ (p_i,p_{i+1},\ldots,p_{i+N-1}) $ を考える.この列の prefix max の種類数がちょうど $ x_i $ である.より正確に言えば, $ p_j = \max_{i \leq k \leq j} p_k $ となる $ j $ ( $ i \leq j \leq i+N-1 $ ) の個数が $ x_i $ である.
Input Format
入力は以下の形式で標準入力から与えられる.
> $ N $ $ A_1 $ $ A_2 $ $ \ldots $ $ A_N $
Output Format
答えを出力せよ.
Explanation/Hint
### Sample Explanation 1
例えば $ x=(2,1) $ について考えると, $ p=(2,3,1) $ によって条件が満たされます.
$ x $ としてあり得るのは, $ (1,1),(1,2),(2,1),(2,2) $ の $ 4 $ 通りです.
### Sample Explanation 3
例えば $ x=(3,1,3) $ について考えると,どんな $ p $ を選んでも条件を満たしません.
### Constraints
- $ 2 \leq N \leq 50 $
- $ 1 \leq A_i \leq N $
- 入力はすべて整数