#include <bits/stdc++.h>
using namespace std;
int p[100001], s[100001], a[100001];
long long f[100001];
bool cj(int x, int y, int z) {
  return 1ll * (x - z) * (p[y] - p[z]) >= 1ll * (y - z) * (p[x] - p[z]);
}
int main() {
  int n, e, t;
  scanf("%d%d%d", &n, &e, &t);
  for (int i = 1; i <= n; i++) scanf("%d", &p[i]);
  for (int i = 0; i <= n; a[i] = s[s[0]], s[++s[0]] = i++)
    for (; s[0] > 1 && cj(i, s[s[0]], s[s[0] - 1]); s[0]--)
      ;
  a[1] = 1;
  for (int i = 1; i <= n; i++)
    f[i] = min(t + f[i - 1], max(t, 2 * (p[i] - p[a[i]])) + f[a[i] - 1]);
  cout << f[n] + e;
}
