配点 : 900 点
問題文
整数 N 個からなる列 A1,A2,...,AN が与えられます。
1,2,...,N の並び替え p1,p2,...,pN であって、
次の操作を何度か行うことでこの列を A1,A2,...,AN に変換できるようなものの個数を 998244353 で割ったあまりを求めてください。
- 各 1≤i≤N に対し、qi=min(pi−1,pi) とする。ただし、p0=pN とする。列 p を列 q で置き換える。
制約
- 1≤N≤3×105
- 1≤Ai≤N
- 入力はすべて整数である
入力
入力は以下の形式で標準入力から与えられる。
N
A1
:
AN
出力
条件を満たす列の個数を 998244353 で割ったあまりを出力せよ。
3
1
2
1
2
(2,3,1),(3,2,1) が条件を満たします。
5
3
1
4
1
5
0
8
4
4
4
1
1
1
2
2
24
6
1
1
6
2
2
2
0