007 - 引っ越し
時間制限 2 秒 / メモリ制限 64 MB / 得点 15 / x 0 /
引っ越し
太郎君は引っ越しをすることになりました。太郎君はたくさんの荷物を持っているので、荷物の運搬を引っ越し業者に頼むことにしました。荷物はいろいろな重さの物があるので、わかりやすいように軽い方から順番に並べて置いてもらうように頼みましたが、引っ越し業者の人はばらばらの順番で荷物を置いていってしまいました。そこで太郎君は荷物を並べ替えようとしましたが、荷物は重いので運ぶのには体力が必要です。それぞれの荷物は今ある場所から他の荷物の間や荷物の端など好きな場所に運ぶことができますが、ある荷物を運ぶにはその荷物の重さと同じだけ体力を使います。太郎君はあまり体力がないので、できるだけ体力を使わずに荷物を軽い方から順番に並べる方法を考えることにしました。
入力
n x1 x2 ... xn
・nは太郎君の持っている荷物の数を表す
・x1からxnはそれぞれの荷物の重さを表し、現在はx1、x2、… 、xnの順に並んでいる
制約
1≤n≤105
1≤xi≤n(1≤i≤n)
xi≠xj (1≤i,j≤n かつ i≠j)
(入力はすべて整数で与えられる)
出力
S
荷物を軽い方から順番に並べるのに必要な最小の体力の合計Sを出力せよ、ただし最後に改行を出力せよ
入出力例
入力例1
4 1 4 2 3
出力例1
4
解説
重さ4の荷物を右端に運ぶと重さの軽い順になります
入力例2
5 1 5 3 2 4
出力例2
7
解説
重さ2の荷物を重さ1の荷物の右側に運び、重さ5の荷物を右端に運ぶと重さの軽い順になります
入力例3
7 1 2 3 4 5 6 7
出力例3
0
解説
最初から重さの軽い順に並んでいます
入力例4
8 6 2 1 3 8 5 4 7
出力例4
19