U470963 差分回文数列
题目描述
对于一个数列 $\{a_n\}$,定义他的差分数列 $\{d_n\}=\{a_2-a_1,a_3-a_2,\cdots,a_n-a_{n-1}\}$,数列 $\{a_n\}$ 被称作“差分回文数列”,当且仅当他的差分数列是一个回文数列。
现给出数列 $\{a_n\}$,问有多少种重排方式,使得 $\{a_n\}$ 重排后是一个“差分回文数列”,答案对 $998244353$ 取模。
两种重排方式不同,当且仅当重排后形成的两个数列不同。
输入格式
第一行一个整数 $n$,表示数列长度。
第二行 $n$ 个整数,第 $i$ 个表示 $a_i$。
输出格式
一个整数,表示重排方式对 $998244353$ 取模的答案。
说明/提示
**【样例 1 解释】**
合法的“差分回文数列”有 `1 2 3` 和 `3 2 1` 两种,其差分数列分别为 `1 1` 和 `-1 -1`。
**【样例 2 解释】**
无论怎么重排,数列均为 `3 3 3`,差分数列为 `0 0`。
**【样例 3 解释】**
找不到满足条件的重排方案。
**【数据范围】**
对于所有测试数据有:$2 \leq n \leq 10^6,1\leq a_i\leq 10^9$。
| 测试点 | $n\leq$ |$a_i \leq$| 特殊性质 |
| :----------: | :----------: |:----------: | :----------: |
| $1\sim 3$ | $10$ |$100$| 无 |
| $4\sim 5$ | $500$ |$10^4$| 无 |
| $6$ | $10^4$ |$10^6$| A |
| $7$ | $10^4$ |$10^6$| B |
| $8\sim 10$ | $10^6$ |$10^9$| 无 |
特殊性质 A:序列中只有三种数。
特殊性质 B:序列是 $1\sim n$ 的排列。