#ATarc104f. [ARC104F] Visibility Sequence

[ARC104F] Visibility Sequence

题目描述

NN 栋正在建设中的大楼排成一列,大楼从左到右依次编号为 1,2,,N1, 2, \ldots, N

给定一个长度为 NN 的整数序列 XX,第 ii 栋大楼的高度 HiH_i 可以是 11XiX_i 之间的任意整数。

对于 1iN1 \leq i \leq N,定义 PiP_i 如下:

  • 如果存在整数 j (1j<i)j\ (1 \leq j < i) 满足 Hj>HiH_j > H_i,则 PiP_i 为所有满足条件的 jj 中的最大值;如果不存在这样的 jj,则 Pi=1P_i = -1

请计算所有可能的大楼高度组合中,PP 可能出现的不同整数序列的个数,并对 10000000071000000007 取模后输出。

输入格式

输入通过标准输入给出,格式如下:

NN X1X_1 X2X_2 \cdots XNX_N

输出格式

请输出所有可能的大楼高度组合中,PP 可能出现的不同整数序列的个数,对 10000000071000000007 取模。

样例 1

输入

3
3 2 1

输出

4

样例 2

输入

3
1 1 2

输出

1

样例 3

输入

5
2 2 2 2 2

输出

16

样例 4

输入

13
3 1 4 1 5 9 2 6 5 3 5 8 9

输出

31155

说明/提示

限制条件

  • 1N1001 \leq N \leq 100
  • 1Xi1051 \leq X_i \leq 10^5
  • 输入均为整数

样例解释 1

HH 可能的情况如下,共有 66 种:

  • H=(1,1,1)H = (1, 1, 1) 时,P=(1,1,1)P = (-1, -1, -1)
  • H=(1,2,1)H = (1, 2, 1) 时,P=(1,1,2)P = (-1, -1, 2)
  • H=(2,1,1)H = (2, 1, 1) 时,P=(1,1,1)P = (-1, 1, 1)
  • H=(2,2,1)H = (2, 2, 1) 时,P=(1,1,2)P = (-1, -1, 2)
  • H=(3,1,1)H = (3, 1, 1) 时,P=(1,1,1)P = (-1, 1, 1)
  • H=(3,2,1)H = (3, 2, 1) 时,P=(1,1,2)P = (-1, 1, 2)

因此,PP 可能出现的不同整数序列有 $(-1, -1, -1),\ (-1, -1, 2),\ (-1, 1, 1),\ (-1, 1, 2)$ 共 44 个。

样例解释 2

HH 可能的情况如下,共有 22 种:

  • H=(1,1,1)H = (1, 1, 1) 时,P=(1,1,1)P = (-1, -1, -1)
  • H=(1,1,2)H = (1, 1, 2) 时,P=(1,1,1)P = (-1, -1, -1)

因此,PP 可能出现的不同整数序列只有 11 个。

由 ChatGPT 4.1 翻译