#ARC171B. Chmax

Chmax

Chmax

时间限制:2s
空间限制:1024MB

题目描述

对 11 到 NN 的排列 PP 定义 F(P)F(P):初始令 B=(1,2,…,N)B=(1,2,\ldots,N);只要存在 ii 满足 Bi<PBiB_i<P_{B_i},就取最小的这种 ii,把 BiB_i 替换为 PBiP_{B_i}。过程结束时的 BB 即为 F(P)F(P)。

给定长度为 NN 的序列 AA,求满足 F(P)=AF(P)=A 的排列 PP 的数量,对 998244353998244353 取模。

输入格式

第一行输入整数 NN。第二行输入 NN 个整数 A1,A2,…,ANA_1,A_2,\ldots,A_N。

输出格式

输出答案对 998244353998244353 取模后的值。

样例输入 1

4
3 3 3 4

样例输出 1

1

样例输入 2

4
2 2 4 3

样例输出 2

0

样例输入 3

8
6 6 8 4 5 6 8 8

样例输出 3

18

数据范围

对于所有数据,1≤N≤2×1051\le N\le2\times10^5,1≤Ai≤N1\le A_i\le N。

子任务编号 分值 特殊限制
1 10 对所有 ii 均有 Ai=iA_i=i
2 对所有 ii 均有 Ai=NA_i=N
3 20 N≤8N\le8
4 30 保证存在至少一个满足条件的排列 PP
5 无特殊限制