atcoder#ABC209F. [ABC209F] Deforestation
[ABC209F] Deforestation
配点 : 点
問題文
本の木が左右一列に並んでおり、左から 本目の木 の高さは です。
あなたは、好きな順番でこれら 本の木を全て伐採します。具体的には、 の並び替えによって得られるある順列 について、 の順に、
- のコストを支払った後、木 を伐採する。すなわち、 を にする。
という操作を行います。ただし、 とします。
言い換えると、ある木を伐採するのにかかるコストは木を伐採する直前での、その木と両隣の木の高さの総和となります。
支払うコストの総和が最小となるような の個数を求めてください。答えは非常に大きくなる可能性があるので、 で割った余りを出力してください。
制約
- 入力は全て整数
入力
入力は以下の形式で標準入力から与えられる。
出力
支払うコストの総和が最小となるような の個数を で割った余りを出力せよ。
3
4 2 4
2
支払うコストの総和が最小となるような は、 と の つです。以下、木の伐採の例を示します。
のとき
- 最初に木 を伐採する。この時に支払うコストは である。
- 次に木 を伐採する。この時に支払うコストは である。
- 最後に木 を伐採する。この時に支払うコストは である。
支払うコストの総和は となります。
3
100 100 100
6
15
804289384 846930887 681692778 714636916 957747794 424238336 719885387 649760493 596516650 189641422 25202363 350490028 783368691 102520060 44897764
54537651
で割った余りを出力することに注意してください。