#include using namespace std; const long long inf = 1e16; template void chmin(T1 &a, T2 b) { if (b < a) a = b; } int main() { long long N, A, B, W; cin >> N >> A >> B >> W; vector D(N); for (int i = 0; i < N; i++) scanf("%lld", &D[i]); if (B == 0) { cout << W - N * A << endl; return 0; } static long long dp0[1010], dp1[1010]; fill_n(dp0, 1010, inf); dp0[0] = 0; for (int i = 0; i < N; i++) { fill_n(dp1, 1010, inf); for (int j = 0; j < 1007; j++) { chmin(dp1[0], dp0[j] + D[i]); chmin(dp1[j + 1], dp0[j] + B * (j + 1) - A); } swap(dp0, dp1); } long long mini = *min_element(dp0, dp0 + 1010); cout << W + mini << endl; }