from collections import deque



N,A,B = list(map(int, input().split()))

X = list(map(int, input().split()))



INF = float("inf")



dist = deque(X)



next_x = +1

i = 0

ans = 0

while len(dist) != 1:



    if A*abs(dist[i+next_x] - dist[i]) <= B:

        ans += A*abs(dist[i+next_x] - dist[i])

        if next_x == 1:

            dist.popleft()

            i = 0

        else:

            dist.pop()

            i = len(dist)-1

    else:

        ans += B

        if next_x == 1:

            dist.popleft()

            i = len(dist)-1

        else:

            dist.pop()

            i = 0

        

        next_x = -next_x

        

print(ans)
# 入力

import sys

stdin = sys.stdin



def li(): return [int(x) for x in stdin.readline().split()]

def li_(): return [int(x)-1 for x in stdin.readline().split()]

def lf(): return [float(x) for x in stdin.readline().split()]

def ls(): return stdin.readline().split()

def ns(): return stdin.readline().rstrip()

def lc(): return list(ns())

def ni(): return int(ns())

def nf(): return float(ns())



n,a,b = li()

x = li()



ans = 0

for i in range(n-1):

    if a*(x[i+1]-x[i]) > b:

        ans += b

        

    else:

        ans += a*(x[i+1]-x[i])

        

print(ans)
from collections import deque

N, A, B = list(map(int, input().split()))
X = list(map(int, input().split()))
INF = float("inf")
dist = deque(X)
next_x = +1
i = 0
ans = 0
while len(dist) != 1:
    if A * abs(dist[i + next_x] - dist[i]) <= B:
        ans += A * abs(dist[i + next_x] - dist[i])
        if next_x == 1:
            dist.popleft()
            i = 0
        else:
            dist.pop()
            i = len(dist) - 1
    else:
        ans += B
        if next_x == 1:
            dist.popleft()
            i = len(dist) - 1
        else:
            dist.pop()
            i = 0
        next_x = -next_x
print(ans)

# 入力
import sys

stdin = sys.stdin


def li():
    return [int(x) for x in stdin.readline().split()]


def li_():
    return [int(x) - 1 for x in stdin.readline().split()]


def lf():
    return [float(x) for x in stdin.readline().split()]


def ls():
    return stdin.readline().split()


def ns():
    return stdin.readline().rstrip()


def lc():
    return list(ns())


def ni():
    return int(ns())


def nf():
    return float(ns())


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

-from collections import deque +# 入力 +import sys -N, A, B = list(map(int, input().split())) -X = list(map(int, input().split())) -INF = float("inf") -dist = deque(X) -next_x = +1 -i = 0 +stdin = sys.stdin + + +def li(): +    return [int(x) for x in stdin.readline().split()] + + +def li_(): +    return [int(x) - 1 for x in stdin.readline().split()] + + +def lf(): +    return [float(x) for x in stdin.readline().split()] + + +def ls(): +    return stdin.readline().split() + + +def ns(): +    return stdin.readline().rstrip() + + +def lc(): +    return list(ns()) + + +def ni(): +    return int(ns()) + + +def nf(): +    return float(ns()) + + +n, a, b = li() +x = li() -while len(dist) != 1: -    if A * abs(dist[i + next_x] - dist[i]) <= B: -        ans += A * abs(dist[i + next_x] - dist[i]) -        if next_x == 1: -            dist.popleft() -            i = 0 -        else: -            dist.pop() -            i = len(dist) - 1 +for i in range(n - 1): +    if a * (x[i + 1] - x[i]) > b: +        ans += b -        ans += B -        if next_x == 1: -            dist.popleft() -            i = len(dist) - 1 -        else: -            dist.pop() -            i = 0 -        next_x = -next_x +        ans += a * (x[i + 1] - x[i])