atcoder#ARC117B. [ARC117B] ARC Wrecker

[ARC117B] ARC Wrecker

配点: 400400

問題文

AtCoder 街道には NN 個のビルが建設されています。最初、左から ii 番目のビルは AiA_i 階建てです。

ARC 解体業者の社長である高橋君は、以下の操作を好きな回数だけ行うことができます。11 回も操作を行わないことも可能です。

  • 好きな正の整数 XX を選び、XX 階の高さから大砲を発射する。そのとき、現時点で XX 階建て以上であるすべてのビルについて、階数が 11 減少する。

あり得る最終的なビルの景観の数を 109+710^{9} + 7 で割った余りを求めてください。

ただし、景観 A と景観 B が異なるとは、以下のことを指します。

  • 景観 A における、左から ii 番目のビルの高さを PiP_i とする。
  • 景観 B における、左から ii 番目のビルの高さを QiQ_i とする。
  • PiQiP_i \neq Q_i となる ii11 つでも存在する場合、景観 A と景観 B は異なる。

制約

  • 1N1000001 \leq N \leq 100000
  • 1Ai1091 \leq A_i \leq 10^{9}
  • 入力はすべて整数

入力

入力は以下の形式で標準入力から与えられます。

NN

A1A_1 A2A_2 \cdots ANA_N

出力

答えを出力してください。

2
1 2
4

操作後のビルの高さとしてあり得るものは、以下の 44 通りです。

  • (ビル 11 の階数, ビル 22 の階数) = (0,0)(0, 0)
  • (ビル 11 の階数, ビル 22 の階数) = (0,1)(0, 1)
  • (ビル 11 の階数, ビル 22 の階数) = (1,1)(1, 1)
  • (ビル 11 の階数, ビル 22 の階数) = (1,2)(1, 2)
6
5 3 4 1 5 2
32
7
314 159 265 358 979 323 846
492018656

全部で 2019249216000020192492160000 通りの景観があり得ますが、それを 109+710^{9} + 7 で割った余りである 492018656492018656 を出力すると正解になります。