#P0577. 又一道子序列问题(Yet Another Problem On a Subsequence)

又一道子序列问题(Yet Another Problem On a Subsequence)

题目描述

如果一个长度为 kk 的数组 aa 满足 a1=k−1a_1=k-1 且 a1>0a_1>0,那么称它为一个好数组。

如果一个序列能够被划分成若干个连续片段,并且每个片段都是好数组,那么称这个序列是好的。每个元素必须恰好属于一个片段,片段数量至少为 11。

给定一个长度为 nn 的原序列,请计算它有多少个子序列是好的。两个子序列只要选择的下标集合不同,就认为它们不同。答案对 998244353998244353 取模。

输入格式

第一行一个整数 nn,表示原序列长度。

第二行 nn 个整数 a1,a2,…,ana_1,a_2,\ldots,a_n。

输出格式

输出一个整数,表示好的子序列数量对 998244353998244353 取模后的结果。

样例

3
2 1 1
2
4
1 1 1 1
7

说明

第一个样例中,好的子序列有 [a1,a2,a3][a_1,a_2,a_3] 和 [a2,a3][a_2,a_3]。

第二个样例中,好的子序列共有 77 个:[a1,a2,a3,a4][a_1,a_2,a_3,a_4]、[a1,a2][a_1,a_2]、[a1,a3][a_1,a_3]、[a1,a4][a_1,a_4]、[a2,a3][a_2,a_3]、[a2,a4][a_2,a_4] 和 [a3,a4][a_3,a_4]。

数据范围

1≤n≤1031\le n\le10^3,−109≤ai≤109-10^9\le a_i\le10^9。