output_description: Print the minimum possible total increase of your fatigue level when you visit
  all the towns.
  
  * * *
input_description: The input is given from Standard Input in the following format:
  
      
      
      N A B
      X_1 X_2 ... X_N
attempt: # coding: utf-8
  # Your code here!
  # coding: utf-8
  from fractions import gcd
  from functools import reduce
  import sys
  
  sys.setrecursionlimit(200000000)
  from inspect import currentframe
  
  
  # my functions here!
  # 標準エラー出力
  def printargs2err(*args):
      names = {id(v): k for k, v in currentframe().f_back.f_locals.items()}
      print(
          ", ".join(names.get(id(arg), "???") + " : " + repr(arg) for arg in args),
          file=sys.stderr,
      )
  
  
  def debug(x):
      print(x, file=sys.stderr)
  
  
  def printglobals():
      for symbol, value in globals().items():
          print('symbol="%s"、value=%s' % (symbol, value), file=sys.stderr)
  
  
  def printlocals():
      for symbol, value in locals().items():
          print('symbol="%s"、value=%s' % (symbol, value), file=sys.stderr)
  
  
  # 入力（後でいじる）
  def pin(type=int):
      return map(type, input().split())
  
  
  # 繰り返し自乗法だよ
  # これはnのp乗をmで割ったあまりをだすよ
  def modular_w_binary_method(n, m, p):
      ans = 1 if n > 0 else 0
      while p > 0:
          if p % 2 == 1:
              ans = (ans * n) % m
          n = (n**2) % m
          p //= 2
      return ans
  
  
  # mod上でのaの逆元を出すよ
  """
      フェルマーの小定理より a**(p)%p==a isTrue
      これを利用すれば a**(p-2)%p==a**(-1) isTrue
      元と逆元とをかけてpで割れば1が余るよ！
  """
  
  
  def modular_inverse(a, prime):
      return modular_w_binary_method(a, prime, prime - 2)
  
  
  # 逆元を使うと容易に頑張れるｃ
  def conbination(n, a, mod=10**9 + 7):
      # cはイラない
      res = 1
      for s in range(a):
          res = (res * (n - s) * (modular_inverse(s + 1, mod))) % mod
  
      return res
  
  
  # 操作から作れるものの組み合わせは何個かー＞同じものでも違う方法で構成できるかから考える方法もある
  """
  """
  
  # solution:
  
  # input
  N, A, B = pin()
  X = list(pin())
  t = (B + 1) // A
  ans = 0
  for i in range(1, N):
      f = X[i] - X[i - 1]
      if f < t:
          ans += A * f
      else:
          ans += B
  print(ans)
  # print(["No","Yes"][cond])
  # print([["NA","YYMM"],["MMYY","AMBIGUOUS"]][cMMYY][cYYMM])
  """
  #printデバッグ消した？
  #前の問題の結果見てないのに次の問題に行くの？
  """
  """
  お前カッコ閉じるの忘れてるだろ
  """
  
problem_description: Statement
  
  There are N towns on a line running east-west. The towns are numbered 1
  through N, in order from west to east. Each point on the line has a one-
  dimensional coordinate, and a point that is farther east has a greater
  coordinate value. The coordinate of town i is X_i.
  
  You are now at town 1, and you want to visit all the other towns. You have two
  ways to travel:
  
    * Walk on the line. Your _fatigue level_ increases by A each time you travel a distance of 1, regardless of direction.
  
    * Teleport to any location of your choice. Your fatigue level increases by B, regardless of the distance covered.
  
  Find the minimum possible total increase of your fatigue level when you visit
  all the towns in these two ways.
samples: [{"input": "4 2 5\n    1 2 5 7", "output": "11\n    \n\nFrom town 1, walk a distance of 1 to town 2, then teleport to town 3, then\nwalk a distance of 2 to town 4. The total increase of your fatigue level in\nthis case is 2\u00d71+5+2\u00d72=11, which is the minimum possible value.\n\n* * *"}, {"input": "7 1 100\n    40 43 45 105 108 115 124", "output": "84\n    \n\nFrom town 1, walk all the way to town 7. The total increase of your fatigue\nlevel in this case is 84, which is the minimum possible value.\n\n* * *"}, {"input": "7 1 2\n    24 35 40 68 72 99 103", "output": "12\n    \n\nVisit all the towns in any order by teleporting six times. The total increase\nof your fatigue level in this case is 12, which is the minimum possible value."}]