atcoder#ARC067B. [ABC052D] Walk and Teleport

[ABC052D] Walk and Teleport

配点 : 500500

問題文

東西方向にのびる直線上に、NN 個の町があります。 町には、西から順に 11 から NN までの番号がついています。 直線上には座標が設定されていて、東に行くほど座標が大きくなります。 町 ii の座標は XiX_i です。

あなたは今、町 11 にいて、これからほかの全ての町を訪れたいです。 移動する手段は次の 22 種類あります。

  • 直線上を歩いて移動する。 東西どちらに歩いても、11 移動する度に疲労度が AA 上がります。
  • 好きな場所へテレポートする。 テレポートをすると、移動した距離によらず疲労度が BB 上がります。

この 22 種類の移動を繰り返して全ての町を最適に回った時、疲労度の上昇値の合計の最小値がいくつになるか求めてください。

制約

  • 入力は全て整数である
  • 2N1052 \leq N \leq 10^5
  • 1Xi1091 \leq X_i \leq 10^9
  • 全ての i(1iN1)i(1 \leq i \leq N-1) について、$X_i が成り立つ
  • 1A1091 \leq A \leq 10^9
  • 1B1091 \leq B \leq 10^9

入力

入力は以下の形式で標準入力から与えられる。

NN AA BB

X1X_1 X2X_2 ...... XNX_N

出力

全ての町を最適に回った時、疲労度の上昇値の合計の最小値がいくつになるかを出力せよ。

4 2 5
1 2 5 7
11

11 から町 22 まで 11 の距離歩いて移動したあと、町 33 にテレポートし、そこから町 44 まで 22 の距離歩いて移動すると、 疲労度の上昇値の合計が 2×1+5+2×2=112 \times 1+5+2 \times 2=11 になり、これが最小です。

7 1 100
40 43 45 105 108 115 124
84

11 から町 77 まで歩き続けると、疲労度の上昇値の合計が 8484 になり、これが最小です。

7 1 2
24 35 40 68 72 99 103
12

どのような順番でもよいので、66 回のテレポートで全ての町を訪れると、疲労度の上昇値の合計が 1212 になり、これが最小です。