AT_sumitb2019_e Colorful Hats 2
Description
[problemUrl]: https://atcoder.jp/contests/sumitrust2019/tasks/sumitb2019_e
$ N $ 人の人が一列に並んでおり、前から順に $ 1,\ 2,\ 3,\ ...,\ N $ と番号が付けられています。それぞれの人は、赤色・青色・緑色のいずれかの帽子を被っています。
さて、番号 $ i $ の人は以下の発言をしました。
- 「自分より前に、自分と同じ色の帽子を被っている人はちょうど $ A_i $ 人いる。」
すべての人の発言が正しいとして、$ N $ 人の人の帽子の色の組合せとして考えられるものが何通りあるか求めてください。
ただし、答えがとても大きくなる場合があるので、代わりに $ 1000000007 $ で割った余りを計算してください。
Input Format
入力は以下の形式で標準入力から与えられます。
> $ N $ $ A_1 $ $ A_2 $ $ A_3 $ $ ... $ $ A_N $
Output Format
$ N $ 人の帽子の色の組合せとして考えられるものの個数を $ 1000000007 $ で割った余りを出力してください。
Explanation/Hint
### 制約
- $ 1\ \leq\ N\ \leq\ 100000 $
- $ 0\ \leq\ A_i\ \leq\ N-1 $
- 入力中の値はすべて整数
### Sample Explanation 1
以下の $ 3 $ 通りの組合せが考えられます。 - 赤, 赤, 赤, 赤, 赤, 赤 - 青, 青, 青, 青, 青, 青 - 緑, 緑, 緑, 緑, 緑, 緑