Problem2127--非严格单调递增数列

2127: 非严格单调递增数列

Time Limit: 1 Sec  Memory Limit: 128 MB
Submit: 125  Solved: 32
[Status] [Submit] [Creator:]

Description

有一个长度为 n 的非严格单调递增数列 A1, A2, ……,An。数列中的每个元素均在 1 到 100 范围内(即 1 ≤ Ai ≤ 100)。

满足 1 ≤ A1 ≤ A2 ≤ A3 ≤ …… ≤ An ≤ 100。 

但是其中有一些元素缺失了,我们用 Ai = -1 来表示元素 Ai 缺失了。

现在你需要还原出这个数列,即将所有值为 -1 的 Ai 修改为 1 到 100 范围内(包括 1 和 100)的一个整数且仍然满足 A1 ≤ A2 ≤ A3 ≤ …… ≤ An。

求:有多少种不同的方案?

由于方案数可能很大,你只需要输出方案数除以 10007 的余数即可。

注:不能修改值不为 -1 的那些 Ai。

Input

第一行,一个整数 n(1 ≤ n ≤ 10000)。

第二行,n 个整数 A1, A2, ……, An(Ai = -1 或者 1 ≤ Ai ≤ 100)。

Output

输出一个整数,表示将数列还原成 1 ≤ A1 ≤ A2 ≤ A3 ≤ …… ≤ An ≤ 100 的不同方案数。

Sample Input Copy

【样例输入1】
3
1 -1 3
【样例输出1】
3
【样例输入2】
4
-1 2 99 -1
【样例输出2】
4
【样例输入3】
3
-1 -1 -1
【样例输出3】
1581

HINT

【数据规模与约定】
· 对于 50% 的数据,n ≤ 100
· 对于 100% 的数据,1 ≤ n ≤ 10000

Source/Category