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 翻译