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)
def d_walk_and_teleport(N, A, B, X):

    # 西から東に1つずつ、歩くかテレポートのどちらか疲労しない方で進む

    ans = sum([min(A * (X[k + 1] - X[k]), B) for k in range(N - 1)])

    return ans



N,A,B = [int(i) for i in input().split()]

X = [int(i) for i in input().split()]

print((d_walk_and_teleport(N, A, B, X)))
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)

def d_walk_and_teleport(N, A, B, X):
    # 西から東に1つずつ、歩くかテレポートのどちらか疲労しない方で進む
    ans = sum([min(A * (X[k + 1] - X[k]), B) for k in range(N - 1)])
    return ans


N, A, B = [int(i) for i in input().split()]
X = [int(i) for i in input().split()]
print((d_walk_and_teleport(N, A, B, X)))

+def d_walk_and_teleport(N, A, B, X): +    # 西から東に1つずつ、歩くかテレポートのどちらか疲労しない方で進む +    ans = sum([min(A * (X[k + 1] - X[k]), B) for k in range(N - 1)]) +    return ans + + -ans = 0 -for i in range(N - 1): -    ans += min(A * (X[i + 1] - X[i]), B) -print(ans) +print((d_walk_and_teleport(N, A, B, X)))