#13242. 又见LIS【NOIP2024模拟赛T3】

又见LIS【NOIP2024模拟赛T3】

题目描述

小明可太喜欢LIS了,因为LIS模型随便改改就是一道新题。

那么现在,新题来啦:

给你一个长度为nn的数组vv,每个位置的值是1,...,n1,...,n中的一个整数。

小明把他的LIS数组求出来了(LIS数组第ii位表示的是,以第ii个元素结尾的最长上升子序列长度,也就是fi=1+maxj<i,vj<vifjf_i=1+\max_{j<i,v_j<v_i}f_j求出来的数组)。

由于小明的记忆力超常,才过了一分钟,小明就忘记了其中的一部分。

他只记得,对于第LIS数组的第ii个位置,信息是aia_i

其中,

ai>0a_i>0,表示小明清晰记得LIS数组第ii个位置是aia_i

ai=0a_i=0,表示小明关心第LIS数组中ii个位置的值是多少。

ai=1a_i=-1,表示小明不关心LIS数组中第ii个位置的值是多少。

现在,小明只关心所有他关心的位置,有多少种不同的可能。

请帮助小明算一算吧。

输入格式

第一行输入nn

接下来一行nn个整数a1,...,ana_1,...,a_n

输出格式

输出一个数字表示答案mod998244353\mod 998244353

样例输入 #1

4
0 0 0 0

样例输出 #1

15

样例解释 #1

穷举可知真的有1515种方案。

样例输入 #2

4
0 -1 0 0

样例输出 #2

10

样例解释 #2

穷举可知,只关心第1,3,41,3,4个位置的情况下,真的只有1010种方案。

样例输入 #3

7
-1 2 0 0 -1 0 0

样例输出 #3

235

样例输入 #4

7
-1 2 0 0 1 0 0

样例输出 #4

151

数据范围

对于10%的数据:n7n\leq 7

对于15%的数据:n9n\leq 9

对于20%的数据:n10n\leq 10

对于30%的数据:n20n\leq 20

对于另10%的数据:保证ai=0a_i=0

对于另15%的数据:保证ai0a_i\geq 0

对于另15%的数据:保证ai0a_i\leq 0

对于100%的数据:n5000,1aiin\leq 5000,-1\leq a_i\leq i