問題文
一列に並んだ N 棟のビルが建設中であり、ビルには左から順番に 1,2,ldots,N の番号がついています。
長さ N の整数列 X が与えられ、ビル i の高さ Hi は、1 以上 Xi 以下の整数のいずれかにすることができます。
1leqileqN に対して、Pi を次のように定めます。
- Hj>Hi を満たすような整数 j(1leqj<i) が存在する場合はそのような j の最大値、存在しない場合は \-1 とする
全てのビルの高さの組み合わせを考えるとき、 P としてありうる整数列の個数を 1000000007 で割った余りを求めてください。
制約
- 1leqNleq100
- 1leqXileq105
- 入力は全て整数である
入力
入力は以下の形式で標準入力から与えられる。
N
X1 X2 cdots XN
出力
全てのビルの高さの組み合わせを考えるとき、 P としてありうる整数列の個数を 1000000007 で割った余りを出力せよ。
入力例 1
3
3 2 1
出力例 1
4
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 個です。
入力例 2
3
1 1 2
出力例 2
1
H としては、次の 2 通りが考えられます。
- 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