#include <bits/stdc++.h>
using namespace std;
const int N = 100010;
int e, n, wait;
int pos[N];
long long ans;
int main() {
  scanf("%d%d%d", &n, &e, &wait);
  ans = e;
  for (int i = 1; i <= n; ++i) scanf("%d", &pos[i]);
  int now = 0;
  while (1) {
    if (now == n) break;
    int x = now + 1;
    while (x < n && 2 * (pos[x] - pos[now + 1]) < wait) {
      ++x;
    }
    if (2 * (pos[x] - pos[now + 1]) >= wait) {
      ans += min((long long)wait * (x - now), 2ll * (pos[x] - pos[now + 1]));
    } else
      ans += (long long)wait * (x - now);
    now = x;
  }
  cout << ans;
}
