[ABC209F] Deforestation
题意翻译
$n$ 个数:$a_1,a_2,...,a_n$。
每次可以选择一个 $i$,选择的代价是 $a_{i-1}+a_i+a_{i+1}$,然后令 $a_i=0$。
求有多少种方案,使得 $a_1,a_2,...,a_n$ 都变为 $0$ 的总代价最小。特别的,$a_0=a_{n+1}=0$。
题目描述
[problemUrl]: https://atcoder.jp/contests/abc209/tasks/abc209_f
$ N $ 本の木が左右一列に並んでおり、左から $ i\,\ (1\ \leq\ i\ \leq\ N) $ 本目の木 $ i $ の高さは $ H_i $ です。
あなたは、好きな順番でこれら $ N $ 本の木を全て伐採します。具体的には、 $ (1,2,\ \ldots,\ N) $ の並び替えによって得られるある順列 $ P $ について、$ i=1,2,3,...,N $ の順に、
- $ H_{P_i-1}+H_{P_i}+H_{P_i+1} $ のコストを支払った後、木 $ P_i $ を伐採する。すなわち、$ H_{P_i} $ を $ 0 $ にする。
という操作を行います。ただし、$ H_0=0,H_{N+1}=0 $ とします。
言い換えると、ある木を伐採するのにかかるコストは木を伐採する直前での、その木と両隣の木の高さの総和となります。
支払うコストの総和が最小となるような $ P $ の個数を求めてください。答えは非常に大きくなる可能性があるので、$ (10^9+7) $ で割った余りを出力してください。
输入输出格式
输入格式
入力は以下の形式で標準入力から与えられる。
> $ N $ $ H_1 $ $ H_2 $ $ \ldots $ $ H_N $
输出格式
支払うコストの総和が最小となるような $ P $ の個数を $ (10^9+7) $ で割った余りを出力せよ。
输入输出样例
输入样例 #1
3
4 2 4
输出样例 #1
2
输入样例 #2
3
100 100 100
输出样例 #2
6
输入样例 #3
15
804289384 846930887 681692778 714636916 957747794 424238336 719885387 649760493 596516650 189641422 25202363 350490028 783368691 102520060 44897764
输出样例 #3
54537651
说明
### 制約
- $ 1\ \leq\ N\ \leq\ 4000 $
- $ 1\ \leq\ H_i\ \leq\ 10^9 $
- 入力は全て整数
### Sample Explanation 1
支払うコストの総和が最小となるような $ P $ は、$ (1,3,2) $ と $ (3,1,2) $ の $ 2 $ つです。以下、木の伐採の例を示します。 $ P=(1,3,2) $ のとき - 最初に木 $ 1 $ を伐採する。この時に支払うコストは $ H_0+H_1+H_2=6 $ である。 - 次に木 $ 3 $ を伐採する。この時に支払うコストは $ H_2+H_3+H_4=6 $ である。 - 最後に木 $ 2 $ を伐採する。この時に支払うコストは $ H_1+H_2+H_3=2 $ である。 支払うコストの総和は $ 14 $ となります。
### Sample Explanation 3
$ (10^9+7) $ で割った余りを出力することに注意してください。