AT_abc457_f [ABC457F] Second Gap
题目描述
给定一个整数 $N$ 和一个长度为 $N-1$ 的整数序列 $D = (D_1, D_2, \ldots, D_{N-1})$。
请你计算满足以下条件的排列 $P = (P_1, P_2, \ldots, P_N)$ 的个数,并对 $998244353$ 取模。
- 对于每个 $1 \le i \le N-1$,设 $(P_i, P_{i+1}, \ldots, P_N)$ 中数值最大的元素为 $P_a$,次大的元素为 $P_b$,则 $|a-b|=D_i$。
输入格式
输入从标准输入读入,格式如下:
> $ N $ $ D_1 $ $ D_2 $ $\ldots$ $ D_{N-1} $
输出格式
输出一个整数,表示满足条件的排列个数,对 $998244353$ 取模后的结果。
说明/提示
## 样例解释 1
例如,$(2, 3, 1)$ 满足题意,具体如下:
- 设 $(P_1, P_2, P_3) = (2, 3, 1)$。最大值是 $P_2$,次大值是 $P_1$,有 $|2 - 1| = 1 = D_1$。
- $(P_2, P_3) = (3, 1)$,最大值是 $P_2$,次大值是 $P_3$,有 $|2 - 3| = 1 = D_2$。
共有 $4$ 个满足条件的排列: $(1,2,3),(1,3,2),(2,3,1),(3,2,1)$。故输出 $4$。
## 数据范围
- $2 \le N \le 2 \times 10^5$
- $1 \le D_i \le N-i$
- 所有输入均为整数。
由 ChatGPT 5 翻译