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