N - 背の順
解説
/
配点 : 600 点
実行時間制限: 2 sec / メモリ制限: 1024 MB
問題文
N 人のパ研部員が左右一列に並んでいます。左から i 番目のパ研部員の身長は A_i です。
あなたの仕事は、以下の操作を 0 回以上繰り返してパ研部員たちが背の順で並んでいる、即ち任意の i\ (1\leq i\leq (列にいる部員の数)-1) に対して (左から i 番目にいる部員の身長)<(左から i+1 番目にいる部員の身長) が成り立つようにすることです。
- 今列にいるパ研部員の数を M として、整数 l,\ r\ (1\leq l\leq r\leq M) を選ぶ。選んだ時点で左から l 番目にいる部員の身長を L、r 番目にいる部員の身長を R としたとき、コスト L+R を払って 左から l,\ l+1,\ldots,\ r 番目のパ研部員を列から取り除く。
あなたは仕事を達成するために、最小で合計いくらのコストを払う必要がありますか?
列に誰もいない状態も背の順で並んでいると見なし、また、操作を繰り返す間部員の身長は変化しません。
制約
- 入力は全て整数である。
- 1\leq N\leq2×10^5
- 1\leq A_i\leq N
- A_i≠A_j\ (i≠j)
入力
入力は以下の形式で標準入力から与えられます。
\(N\) \(A_1\) \(A_2\) \(\ldots\) \(A_N\)
出力
払うコストの総和の最小値を出力してください。 出力の最後に改行を忘れないでください。
入力例1
4 3 4 1 2
出力例1
3
l=3,\ r=4 として 1 度だけ操作を行うのが最善です。
入力例2
6 1 2 3 4 5 6
出力例2
0
1 度も操作をしないのが最善です。
入力例3
7 1 5 4 7 2 3 6
出力例3
3