#include <iostream>
#include <string>
#include <vector>
#include <map>
#include <algorithm>
#include <cmath>
#include <sstream>
#include <iomanip>
#include <set>
#include <queue>
#include <stack>
#include <utility>
#include <stdio.h>
#include <unistd.h>
using namespace std;
typedef long long int ll;

#define rep(i, n) for(int i = 0; i < (int)(n); i++)
#define drep(i, n) for(int i = n - 1; i >= 0; i--)
#define YES cout << "YES" << endl
#define Yes cout << "Yes" << endl
#define yes cout << "yes" << endl
#define NO cout << "NO" << endl
#define No cout << "No" << endl
#define no cout << "no" << endl
#define PI 3.14159265359

const int INF = 1001001001;
const ll LINF = 1001002003004005006ll;
const int mod = 1000000007;

void P(int x) {cout << x << endl;}
void P(long x) {cout << x << endl;}
void P(double x) {cout << x << endl;}
void P(ll x) {cout << x << endl;}
void P(string x) {cout << x << endl;}
void P(char x) {cout << x << endl;}

ll gcd(ll a, ll b) { return b?gcd(b,a%b):a;}
ll lcm(ll a, ll b) { return a/gcd(a,b)*b;}


int main() {
  ll n, a, b;
  cin >> n >> a >> b;
  int now;
  cin >> now;
  ll ans = 0;
  rep (i, n - 1) {
    int tmp;
    cin >> tmp;
    ll diff = tmp - now;
    ans += min(b, diff * a);
    now = tmp;
  }
  P(ans);


  return 0;
}


#include <iostream>
#include <cmath>
#include <vector>
#include <map>
#include <iomanip>
#include <algorithm>
#include <sstream>
#include <string>
#include <math.h>
#include <set>
using namespace std;
typedef long long ll;
 
int main() {
	ll n,a,b;
	cin >> n >> a >> b;
	int x[n];
	for (int i=0;i<n;i++) cin >> x[i];
	ll c=0;
	for (int i=0;i<n-1;i++) {
		if ((x[i+1]-x[i])*a>b) c+=b;
		else c+=a*(x[i+1]-x[i]);
	}
	cout << c;
}