#arc067b. [arc067_b]Walk and Teleport
[arc067_b]Walk and Teleport
問題文
東西方向にのびる直線上に、 個の町があります。 町には、西から順に から までの番号がついています。 直線上には座標が設定されていて、東に行くほど座標が大きくなります。 町 の座標は です。
あなたは今、町 にいて、これからほかの全ての町を訪れたいです。 移動する手段は次の 種類あります。
-
直線上を歩いて移動する。 東西どちらに歩いても、 移動する度に疲労度が 上がります。
-
好きな場所へテレポートする。 テレポートをすると、移動した距離によらず疲労度が 上がります。
この 種類の移動を繰り返して全ての町を最適に回った時、疲労度の上昇値の合計の最小値がいくつになるか求めてください。
制約
- 入力は全て整数である
- 全ての について、 が成り立つ
入力
入力は以下の形式で標準入力から与えられる。
出力
全ての町を最適に回った時、疲労度の上昇値の合計の最小値がいくつになるかを出力せよ。
入力例 1
4 2 5
1 2 5 7
出力例 1
11
町 から町 まで の距離歩いて移動したあと、町 にテレポートし、そこから町 まで の距離歩いて移動すると、 疲労度の上昇値の合計が になり、これが最小です。
入力例 2
7 1 100
40 43 45 105 108 115 124
出力例 2
84
町 から町 まで歩き続けると、疲労度の上昇値の合計が になり、これが最小です。
入力例 3
7 1 2
24 35 40 68 72 99 103
出力例 3
12
どのような順番でもよいので、 回のテレポートで全ての町を訪れると、疲労度の上昇値の合計が になり、これが最小です。