You have N towns on a line running east-west, each with a one-dimensional coordinate. You start at town 1 and want to visit all other towns. You can walk, increasing fatigue by A per unit distance, or teleport, increasing fatigue by B regardless of distance. Find the minimum total fatigue increase. Constraints: 2≤N≤10^5, 1≤Xi≤10^9, Xi<Xi+1, 1≤A≤10^9, 1≤B≤10^9. Input format: N A B followed by X1 to XN. Output the minimum fatigue increase. Example: Input: 4 2 5, 1 2 5 7. Output: 11. Example 2: Input: 7 1 100, 40 43 45 105 108 115 124. Output: 84. Example 3: Input: 7 1 2, 24 35 40 68 72 99 103. Output: 12.

# Buggy version:
n,a,b = map(int,input().split())
X = list(map(int,input().split()))
pos = X[0]
ans = 0
for i in range(1, n):
    ans += min(b, X[i] - pos)
    pos = X[i]
print(ans)

# Fixed version:
n,a,b = map(int,input().split())
X = list(map(int,input().split()))
pos = X[0]
ans = 0
for i in range(1, n):
    ans += min(b, (X[i] - pos)*a)
    pos = X[i]
print(ans)

# Buggy version:
n,a,b = map(int, input().split())
x = [int(x) for x in input().split(' ')]

mp = 0
for i in range(n-1):
    mp += min(a*(x[i+1]-x[i], b))
    
print(mp)

# Fixed version:
n,a,b = map(int, input().split())
x = [int(_) for _ in input().split(' ')]

mp = 0
for i in range(n-1):
    mp += min(a*(x[i+1]-x[i]), b)
    
print(mp)

# Buggy version:
N,A,B=map(int,input().split())
X=list(map(int,input().split()))

ans=0
pre=X[0]

for xi in X[1:]:
    if (xi-pre)*A-B>0:
        ans+=B
    else:
        ans+=(xi-pre)
    pre=xi

print(ans)

# Fixed version:
N,A,B=map(int,input().split())
X=list(map(int,input().split()))

ans=0
pre=X[0]

for xi in X[1:]:
    if (xi-pre)*A-B>0:
        ans+=B
    else:
        ans+=(xi-pre)*A
    pre=xi

print(ans)

# Buggy version:
n, a, b = map(int, input().split())
c = list(map(int, input().split()))

ans = 0
for i in range(n-1):
    ans += min(c[i+1] - c[i], b)
print(ans)

# Fixed version:
n, a, b = map(int, input().split())
c = list(map(int, input().split()))

ans = 0
for i in range(n-1):
    ans += min((c[i+1] - c[i]) * a, b)
print(ans)

# Buggy version:
n,a,b = map(int,input().split())
towns = list(map(int,input().split()))

fatigue = 0
for i in range(n-1):
  d = towns[i+1] -towns[i]
  fatigue = max(d*a,b)
print(fatigue)

# Fixed version:
n,a,b = map(int,input().split())
towns = list(map(int,input().split()))

fatigue = 0
for i in range(n-1):
  d = towns[i+1] -towns[i]
  fatigue += min(d*a,b)
print(fatigue)

# Buggy version:
n, a, b = map(int, input().split())
x = map(int, input().split())

ans = 0
for i in range(1, len(x)):
  ans += min(b, (x[i]-x[i-1]+a-1)//a*a)

print(ans)

# Fixed version:
n,a,b = map(int,input().split())
*l, = map(int,input().split())
ans = 0
for i in range(len(l)-1):
    ans += min(b,a*(l[i+1]-l[i]))
print(ans)

# Buggy version:
N,A,B=(int(i) for i in input().split())
X=list(map(int,input().split()))
count=0

for i in range(N-1):
    M=X[i+1]-X[i]
    if M>=B:
        count+=M
    else:
        count+=B
print(count)

# Fixed version:
N,A,B=(int(i) for i in input().split())
X=list(map(int,input().split()))
count=0

for i in range(N-1):
    M=(X[i+1]-X[i])*A
    if M<=B:
        count=count+M
    else:
        count=count+B
print(count)

# Buggy version:
n,a,b=map(int,input().split())
s=list(map(int,input().split())
t=0
for i in range(n-1):
	t+=min(b,a*(s[i+1]-s[i]))

print(t)

# Fixed version:
n,a,b=map(int,input().split())
t=list(map(int,input().split()))
ans=0
for i in range(1,n):
  ans+=min(b,a*(t[i]-t[i-1]))
print(ans)

# Buggy version:
# -*- coding: utf-8 -*-

# Input
s = [input() for i in range(2)]

N = int(s[0].split()[0])
A = int(s[0].split()[1])
B = int(s[0].split()[2])
X = s[1].split()


F = 0

# 疲労度の少ない方法を逐次選択する
for i in range(0, N-1):
    if A*(int(X[i+1]) - int(X[i])) >= B:
        F = F + B
    else:
        F = F + A*(int(X[i+1]) - int(X[i]))
    print(F)

# Output
print(F)


# Fixed version:
# -*- coding: utf-8 -*-
 
# Input
s = [input() for i in range(2)]
 
N = int(s[0].split()[0])
A = int(s[0].split()[1])
B = int(s[0].split()[2])
X = s[1].split()
 
F = 0
 
# 疲労度の少ない方法を逐次選択する
for i in range(0, N-1):
    if A*(int(X[i+1]) - int(X[i])) >= B:
        F = F + B
    else:
        F = F + A*(int(X[i+1]) - int(X[i]))
 
# Output
print(F)

# Buggy version:
n, a, b = map(int, input().split())
x = list(map(int, input().split()))

diff = [x[i] - x[i-1] for i in range(1, n)]

res = 0
for d in diff:
	res += min(d, b)

print(res)

# Fixed version:
n,a,b = list(map(int, input().split()))
x = list(map(int, input().split()))
res = 0
for i in range(1, n):
	res += min([a * (x[i] - x[i-1]), b])
print(res)

# Buggy version:
n, a, b = [ int(v) for v in input().split() ]
town_list = [ int(v) for v in input().split() ]
fatigue_list = [ 0 for i in range(n) ]

for i in range(n-1):
	d = town_list[i+1] - town_list[i]
	fatigue_list[i+1] = fatigue_list[i] + min(a*d,b)
print(fatigue_list)


# Fixed version:

n, a, b = [ int(v) for v in input().split() ]
town_list = [ int(v) for v in input().split() ]
fatigue_list = [ 0 for i in range(n) ]

for i in range(n-1):
	d = town_list[i+1] - town_list[i]
	fatigue_list[i+1] = fatigue_list[i] + min(a*d,b)
print(fatigue_list[-1])

# Buggy version:
N,A,B = [ int(it) for it in input().split() ]
li = [ int(it) for it in input().split() ]
s = 0
for i in range(len(li)-1):
  d = li[i+1] - li[i]
  if (d<B//A):
    s += d*A
  else:
    s += B
print (s)
    
  



# Fixed version:
N,A,B = [ int(it) for it in input().split() ]
li = [ int(it) for it in input().split() ]
s = 0
for i in range(len(li)-1):
  d = li[i+1] - li[i]
  if (A*d<B):
    ds = d*A
  else:
    ds = B
  s+=ds
print (s)

# Buggy version:
n,a,b = (int(i) for i in input().split())
x = list(int(i) for i in input().split())
ans = 0
for i in range(n-1):
 dist  = x[i+1]-x[i]
 move = dist*a
 print(move)
 if move <= b:
  ans += move
 else:
  ans += b
print(ans)
      

# Fixed version:
n,a,b = (int(i) for i in input().split())
x = list(int(i) for i in input().split())
ans = 0
for i in range(n-1):
 dist  = x[i+1]-x[i]
 move = dist*a
 if move <= b:
  ans += move
 else:
  ans += b
print(ans)

# Buggy version:
n, a, b = [int(i) for i in input().split()]
X = [int(i) for i in input.split()]

ans = 0
for i in range(n-1):
  ans += min(a * X[i+1] - b)

print(ans)

# Fixed version:
n, a, b = [int(i) for i in input().split()]
X = [int(i) for i in input().split()]

ans = 0
for i in range(n-1):
  ans += min(a * (X[i+1] - X[i]), b)

print(ans)

# Buggy version:
N, A, B = map(int, input().split())
X = list(map(int, input().split()))
res = 0
for i in range(N - 1):
  if X[i + 1] - X[i] > B:
    res += B
  else:
    res += X[i + 1] = X[i]
print(res)

# Fixed version:
N,A,B = map(int,input().split())
X = list(map(int,input().split()))

Ans = 0
for i in range(1,N):
    if (X[i]-X[i-1])*A >= B:
        Ans += B
    else:
        Ans += (X[i]-X[i-1])*A

print(Ans)

# Buggy version:
n, a, b = map(int, input().split())
x = map(int, input().split())

ans = 0
for i in range(1, x):
  ans += min(b, (x[i]-x[i-1]+a-1)//a*a)

print(ans)

# Fixed version:
n, a, b = map(int,input().split())
x = list(map(int,input().split()))

ans = 0
for i in range(n-1):
    ans += min(b, a*(x[i+1]-x[i]))

print(ans)

# Buggy version:
n, a, b = map(int, input().split())
x = list(map(int, input().split()))

diff = [x[i] - x[i-1] for i in range(1, n)]

print(diff)

res = 0
for d in diff:
	res += min(d * a, b)

print(res)

# Fixed version:
n,a,b = map(int,input().split())
x = list(map(int,input().split()))
ans = 0
d = 0
for i in range(1,n):
    d = x[i]-x[i-1]
    ans += min(d*a, b)
print(ans)

# Buggy version:
l = list(map(int, input().split()))
ans = 0
for i in range(n-1):
    dx = a * (l[i+1] - l[i])
    if b < dx:
        ans += b
    else:
        ans += dx
print(ans)

# Fixed version:
n, a, b = map(int,input().split())
lis = list(map(int,input().split()))
ans = 0
for i in range(n-1):
    if (lis[i + 1] -lis[i]) * a <= b:
        ans += (lis[i + 1] -lis[i]) * a
    else:
        ans += b
print(ans)

# Buggy version:
N, A, B = map(int, input().split())
X = list(map(int, input().split()))

ans = 0
for i in range(1, N):
    d = X[i] - X[i - 1]
    if d * A > B:
        ans += B
    else:
        ans += d * A
print(ans

# Fixed version:
N,A,B=map(int, input().split())
X=list(map(int, input().split()))
ans=0
for i in range(N-1):
 if ((X[i+1]-X[i])*A<=B):
  ans+=(X[i+1]-X[i])*A
 else:
  ans+=B
print(ans)

# Buggy version:
n,a,b=[int(x) for x in input().split()]
ans=0
for i in range(n-1):
    ans+=max(a*(x[i+1]-x[i]),b)
print(ans)

# Fixed version:
n,a,b=[int(x) for x in input().split()]
x=[int(x) for x in input().split()]
ans=0
for i in range(n-1):
    ans+=min(a*(x[i+1]-x[i]),b)
print(ans)

# Buggy version:
if __name__=="__main__":
    [N, A, B] = map(int,input().split())
    xs = list(map(int,input().split()))
    d_xs = [xs[i] - xs[i-1] for i in range(1,len(xs))]
    print(d_xs)
    s = 0
    for d in d_xs:
        if(d*A < B):
            s+=d*A
        else:
            s+=B
    print(s)

# Fixed version:
if __name__=="__main__":
    [N, A, B] = map(int,input().split())
    xs = list(map(int,input().split()))
    d_xs = [xs[i] - xs[i-1] for i in range(1,len(xs))]
    s = 0
    for d in d_xs:
        if(d*A < B):
            s+=d*A
        else:
            s+=B
    print(s)

# Buggy version:
#coding: UTF-8
N, A, B=map(int, input().split())
lis=list(map(int,input().split()))
#print(lis)
out=0
for i in range(0,N-1):
    d=lis[i+1]-lis[i]
    if d < (B-A):
        out=out+d
    else:
        out=out+B
print(out)

# Fixed version:
#coding: UTF-8
N, A, B=map(int, input().split())
lis=list(map(int,input().split()))
#print(lis)
out=0
for i in range(0,N-1):
    d=(lis[i+1]-lis[i])*A
    if d < B:
        out=out+d
    else:
        out=out+B
print(out)

# Buggy version:
N, A, B = map(int,input().split());
X[N] = map(int,input().split);

for i in range(N-1):
    dist[i] = X[i+1]-X[i];

fatigue = 0;
for i in dist:
    if i*A<B:
        fatigue += i * A;
    else:
        fatigue += B;

print(fatigue);


# Fixed version:
N, A, B = map(int,input().split());
X = list(map(int,input().split()));

dist =[X[i+1]-X[i] for i in range(N-1)];

fatigue = 0;
for i in dist:
    if i*A<B:
        fatigue += i*A;
    else:
        fatigue += B;

print(fatigue);

# Buggy version:
N, A, B = map(int, input().split())
X = list(map(int, input().split()))

diff = [X[i + 1] - X[i] for i in range(len(X) - 1)]
print(diff)

fatigue = 0
for i in diff:
    if i * A < B:
        fatigue += i * A
    else:
        fatigue += B

print(fatigue)


# Fixed version:
N, A, B = map(int, input().split())
X = list(map(int, input().split()))

diff = [X[i + 1] - X[i] for i in range(len(X) - 1)]

fatigue = 0
for i in diff:
    if i * A < B:
        fatigue += i * A
    else:
        fatigue += B

print(fatigue)

# Buggy version:
n,a,b=map(int,input().split())
x=list(map(int,input().split()))
ans=0
for i in range(n):
  if (x[i+1]-x[i])*a>=b:
    ans+=b
  else:
    ans+=(x[i+1]-x[i])*a
print(ans)

# Fixed version:
n, a, b = map(int,input().split())
x = list(map(int,input().split()))

for i in range(n - 1, 0, -1):
    x[i] -= x[i - 1]

x[0] = 0

ans = 0
for i in range(n):
    if a * x[i] > b:
        ans += b
    else:
        ans += (a * x[i])

print(ans)