#include <bits/stdc++.h>
using namespace std;
int main() {
  int N, E, T;
  while (cin >> N >> E >> T) {
    long long res = E;
    vector<int> x(N);
    for (int i = 0; i < N; i++) cin >> x[i];
    vector<long long> dp(N + 1);
    dp[N - 1] = E + T;
    dp[N] = E;
    for (int i = N - 2; i >= 0; i--) {
      dp[i] = dp[i + 1] + T;
      for (int j = i + 1; j < N; j++) {
        dp[i] = min(dp[i], max(T, 2 * (x[j] - x[i])) + dp[j + 1]);
      }
    }
    cout << dp[0] << endl;
  }
}
