#arc067b. [arc067_b]Walk and Teleport

[arc067_b]Walk and Teleport

問題文

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

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

  • 直線上を歩いて移動する。 東西どちらに歩いても、11 移動する度に疲労度が AA 上がります。

  • 好きな場所へテレポートする。 テレポートをすると、移動した距離によらず疲労度が BB 上がります。

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

制約

  • 入力は全て整数である
  • 2N1052≦N≦10^5
  • 1Xi1091≦X_i≦10^9
  • 全ての i(1iN1)i(1≦i≦N-1) について、Xi<Xi+1X_i<X_{i+1} が成り立つ
  • 1A1091≦A≦10^9
  • 1B1091≦B≦10^9

入力

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

NN AA BB X1X_1 X2X_2 ...... XNX_N

出力

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


入力例 1

4 2 5
1 2 5 7

出力例 1

11

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


入力例 2

7 1 100
40 43 45 105 108 115 124

出力例 2

84

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


入力例 3

7 1 2
24 35 40 68 72 99 103

出力例 3

12

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