AT_arc104_f [ARC104F] Visibility Sequence
Description
[problemUrl]: https://atcoder.jp/contests/arc104/tasks/arc104_f
一列に並んだ $ N $ 棟のビルが建設中であり、ビルには左から順番に $ 1,\ 2,\ \ldots,\ N $ の番号がついています。
長さ $ N $ の整数列 $ X $ が与えられ、ビル $ i $ の高さ $ H_i $ は、$ 1 $ 以上 $ X_i $ 以下の整数のいずれかにすることができます。
$ 1\ \leq\ i\ \leq\ N $ に対して、$ P_i $ を次のように定めます。
- $ H_j\ >\ H_i $ を満たすような整数 $ j\ (1\ \leq\ j\
Input Format
入力は以下の形式で標準入力から与えられる。
> $ N $ $ X_1 $ $ X_2 $ $ \cdots $ $ X_N $
Output Format
全てのビルの高さの組み合わせを考えるとき、 $ P $ としてありうる整数列の個数を $ 1000000007 $ で割った余りを出力せよ。
Explanation/Hint
### 制約
- $ 1\ \leq\ N\ \leq\ 100 $
- $ 1\ \leq\ X_i\ \leq\ 10^5 $
- 入力は全て整数である
### Sample Explanation 1
$ H $ としては、次の $ 6 $ 通りが考えられます。 - $ 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 $ としてありうる整数列は $ (-1,\ -1,\ -1),\ (-1,\ -1,\ 2),\ (-1,\ 1,\ 1),\ (-1,\ 1,\ 2) $ の $ 4 $ 個です。
### Sample Explanation 2
$ H $ としては、次の $ 2 $ 通りが考えられます。 - $ H\ =\ (1,\ 1,\ 1) $ のとき、$ P $ は $ (-1,\ -1,\ -1) $ である - $ H\ =\ (1,\ 1,\ 2) $ のとき、$ P $ は $ (-1,\ -1,\ -1) $ である よって、$ P $ としてありうる整数列は $ 1 $ 個です。