「EZEC-7」猜排列

题目背景

Update:数据已经经过加强。

题目描述

Alice 手上有一个长度为 $n$ 的排列 $a$,排列中的数为 $0,1,2,\cdots,n-1$。 Bob 闲来无事,想去猜它。但 Alice 不想让他轻易猜到。 于是他抛给了 Bob 一些条件,让他来猜这个排列。 我们定义 $f(l,r)=\text{mex}\{a_l,a_{l+1},\cdots,a_r\}$,其中 $\text{mex}$ 函数代表一个可重集中**没有出现过**的最小**非负整数**。 而 Alice 说出的条件包含 $n$ 个数,第 $i$ 个数代表着满足 $1 \leq l \leq r \leq n$ 且 $f(l,r)=i-1$ 的二元组 $(l,r)$ 的个数。 Bob 一下就知道这并不能确认整个排列了,因此他想知道符合已有条件的排列数量。

输入输出格式

输入格式


第一行,一个正整数 $n$,代表 Alice 手中排列的长度。 第二行,$n$ 个非负整数,第 $i$ 个数 $c_i$ 代表着满足 $l \leq r $ 且 $f(l,r)=i-1$ 的二元组 $(l,r)$ 的个数。

输出格式


输出符合已有条件的排列数量对 $998244353$ 取模的值。

输入输出样例

输入样例 #1

4
4 3 1 1

输出样例 #1

2

输入样例 #2

4
4 0 3 2

输出样例 #2

0

说明

**【样例解释】** 第一个样例中存在两个满足条件的排列,分别为: $\{1,0,2,3\}$ 和 $\{3,2,0,1\}$ 。 第二个样例可以通过枚举发现没有符合题意的解。 **【数据范围】** **本题采用捆绑测试。** * Subtask 1(4 points):$n\leq 8$。 * Subtask 2(8 points):$n\leq 20$。 * Subtask 3(16 points):$n\leq 100$。 * Subtask 4(32 points):$n\leq 2\times 10^3$。 * Subtask 5(20 points):$n\leq 10^5$。 * Subtask 6(20 points):无特殊限制。 对于 $100\%$ 的数据,$1\le n\le5\times10^5 $,$c_i \ge 0$,保证 $\sum^{n}_{i=1}c_i=\frac{n(n+1)}{2}-1$。