#include <bits/stdc++.h>
using namespace std;
const int MAX = 2000 + 10;
long long cal[MAX][MAX];
long long dp[MAX];
long long rec[MAX];
int main() {
  int n;
  long long e, t;
  scanf("%d %lld %lld", &n, &e, &t);
  for (int i = 0; i < n; i++) {
    scanf("%lld", &rec[i]);
  }
  for (int i = 0; i < n; i++) cal[i][i] = t;
  for (int i = 0; i < n; i++) {
    for (int j = i + 1; j < n; j++) {
      cal[i][j] = min(t * (j - i + 1), max(2 * (rec[j] - rec[i]), t));
    }
  }
  for (int i = 0; i < n; i++) {
    dp[i] = cal[0][i];
    for (int j = 0; j < i; j++) {
      dp[i] = min(dp[i], dp[j] + cal[j + 1][i]);
    }
  }
  printf("%lld\n", e + dp[n - 1]);
  return 0;
}
