AT_tenka1_2018_f Circular
题目描述
给定一个由 $N$ 个整数构成的序列 $A_1,A_2,\ldots,A_N$。
请计算有多少个 $1,2,\ldots,N$ 的排列 $p_1,p_2,\ldots,p_N$,使得通过若干次如下操作,可以将该排列变换为序列 $A_1,A_2,\ldots,A_N$。将答案对 $998244353$ 取模。
- 对于每个 $1\leq i\leq N$,令 $q_i = \min(p_{i-1}, p_i)$,其中 $p_0 = p_N$。用序列 $q$ 替换序列 $p$。
输入格式
输入以如下格式从标准输入读入。
> $N$ $A_1$ $A_2$ $\ldots$ $A_N$
输出格式
输出满足条件的排列个数,对 $998244353$ 取模后的结果。
说明/提示
### 限制条件
- $1 \leq N \leq 3 \times 10^5$
- $1 \leq A_i \leq N$
- 输入均为整数
### 样例解释 1
$(2,3,1),(3,2,1)$ 满足条件。
由 ChatGPT 4.1 翻译