题目描述
正在建设中的建筑物按顺序排列在一行上,编号从左到右为1,2,…,N。
给定长度为N的整数序列X。建筑物i的高度Hi可以是介于1和Xi(包括Xi)之间的整数。
对于每个1≤i≤N,我们定义Pi如下:
- 如果存在一个整数j(1≤j<i),使得Hj>Hi,那么Pi是所有满足条件的j中的最大值。否则,Pi等于−1。
在考虑建筑物高度的所有可能组合情况下,求满足条件的P的整数序列的数量,对1000000007取模。
约束条件
- 1≤N≤100
- 1≤Xi≤105
- 输入中的所有值都是整数。
输入
输入以以下格式从标准输入给出:
N
X1 X2 ⋯ XN
输出
在考虑建筑物高度的所有可能组合情况下,输出满足条件的P的整数序列的数量,对1000000007取模。
示例输入1
3
3 2 1
示例输出1
4
我们有六种可能的H,如下所示:
- H=(1,1,1),此时P是(−1,−1,−1);
- H=(1,2,1),此时P是(−1,−1,2);
- H=(2,1,1),此时P是(−1,1,1);
- H=(2,2,1),此时P是(−1,−1,2);
- H=(3,1,1),此时P是(−1,1,1);
- H=(3,2,1),此时P是(−1,1,2)。
因此,满足条件的P的整数序列的数量为4,分别是(−1,−1,−1),(−1,−1,2),(−1,1,1)和(−1,1,2)。
示例输入2
3
1 1 2
示例输出2
1
我们有两个可能的H,如下所示:
- H=(1,1,1),此时P是(−1,−1,−1);
- H=(1,1,2),此时P是(−1,−1,−1)。
因此,满足条件的P的整数序列的数量为1。
示例输入3
5
2 2 2 2 2
示例输出3
16
示例输入4
13
3 1 4 1 5 9 2 6 5 3 5 8 9
示例输出4
31155