#arc104f. [arc104_f]Visibility Sequence

[arc104_f]Visibility Sequence

题目描述

正在建设中的建筑物按顺序排列在一行上,编号从左到右为1,2,,N1, 2, \ldots, N

给定长度为NN的整数序列XX。建筑物ii的高度HiH_i可以是介于11XiX_i(包括XiX_i)之间的整数。

对于每个1iN1 \leq i \leq N,我们定义PiP_i如下:

  • 如果存在一个整数j(1j<i) j (1 \leq j < i),使得Hj>HiH_j > H_i,那么PiP_i是所有满足条件的jj中的最大值。否则,PiP_i等于1-1

在考虑建筑物高度的所有可能组合情况下,求满足条件的PP的整数序列的数量,对10000000071000000007取模。

约束条件

  • 1N1001 \leq N \leq 100
  • 1Xi1051 \leq X_i \leq 10^5
  • 输入中的所有值都是整数。

输入

输入以以下格式从标准输入给出:

NN X1X_1 X2X_2 \cdots XNX_N

输出

在考虑建筑物高度的所有可能组合情况下,输出满足条件的PP的整数序列的数量,对10000000071000000007取模。

示例输入1

3
3 2 1

示例输出1

4

我们有六种可能的HH,如下所示:

  • H=(1,1,1)H = (1, 1, 1),此时PP(1,1,1)(-1, -1, -1)
  • H=(1,2,1)H = (1, 2, 1),此时PP(1,1,2)(-1, -1, 2)
  • H=(2,1,1)H = (2, 1, 1),此时PP(1,1,1)(-1, 1, 1)
  • H=(2,2,1)H = (2, 2, 1),此时PP(1,1,2)(-1, -1, 2)
  • H=(3,1,1)H = (3, 1, 1),此时PP(1,1,1)(-1, 1, 1)
  • H=(3,2,1)H = (3, 2, 1),此时PP(1,1,2)(-1, 1, 2)

因此,满足条件的PP的整数序列的数量为44,分别是(1,1,1),(1,1,2),(1,1,1)(-1, -1, -1), (-1, -1, 2), (-1, 1, 1)(1,1,2)(-1, 1, 2)

示例输入2

3
1 1 2

示例输出2

1

我们有两个可能的HH,如下所示:

  • H=(1,1,1)H = (1, 1, 1),此时PP(1,1,1)(-1, -1, -1)
  • H=(1,1,2)H = (1, 1, 2),此时PP(1,1,1)(-1, -1, -1)

因此,满足条件的PP的整数序列的数量为11

示例输入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