#include <bits/stdc++.h>
using namespace std;
using i64 = long long;
using i128 = __int128_t;
struct Line {
i64 k, m;
};
i128 f(const Line& L, i64 x) { return (i128)L.k * x + (i128)L.m; }
bool bad(const Line& a, const Line& b, const Line& c) {
return (i128)(c.m - a.m) * (a.k - b.k) <= (i128)(b.m - a.m) * (a.k - c.k);
}
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
int N;
i64 A, B, C;
if (!(cin >> N >> A >> B >> C)) return 0;
deque<Line> dq;
dq.push_back({0, 0});
i64 P = 0, dp = 0;
for (int i = 1; i <= N; ++i) {
i64 x; cin >> x;
P += x;
while (dq.size() >= 2 && f(dq[0], P) <= f(dq[1], P)) dq.pop_front();
i128 best = f(dq[0], P);
i128 cur = (i128)A * P * P + (i128)B * P + (i128)C + best;
dp = (i64)cur;
Line nl = { -2 * A * P, dp + A * P * P - B * P };
while (dq.size() >= 2 && bad(dq[dq.size()-2], dq.back(), nl)) dq.pop_back();
dq.push_back(nl);
}
cout << dp << '\n';
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgp1c2luZyBpNjQgPSBsb25nIGxvbmc7CnVzaW5nIGkxMjggPSBfX2ludDEyOF90OwoKc3RydWN0IExpbmUgewogICAgaTY0IGssIG07Cn07CgppMTI4IGYoY29uc3QgTGluZSYgTCwgaTY0IHgpIHsgcmV0dXJuIChpMTI4KUwuayAqIHggKyAoaTEyOClMLm07IH0KCmJvb2wgYmFkKGNvbnN0IExpbmUmIGEsIGNvbnN0IExpbmUmIGIsIGNvbnN0IExpbmUmIGMpIHsKICAgIHJldHVybiAoaTEyOCkoYy5tIC0gYS5tKSAqIChhLmsgLSBiLmspIDw9IChpMTI4KShiLm0gLSBhLm0pICogKGEuayAtIGMuayk7Cn0KCmludCBtYWluKCkgewogICAgaW9zOjpzeW5jX3dpdGhfc3RkaW8oZmFsc2UpOwogICAgY2luLnRpZShudWxscHRyKTsKICAgIGludCBOOwogICAgaTY0IEEsIEIsIEM7CiAgICBpZiAoIShjaW4gPj4gTiA+PiBBID4+IEIgPj4gQykpIHJldHVybiAwOwogICAgZGVxdWU8TGluZT4gZHE7CiAgICBkcS5wdXNoX2JhY2soezAsIDB9KTsKICAgIGk2NCBQID0gMCwgZHAgPSAwOwogICAgZm9yIChpbnQgaSA9IDE7IGkgPD0gTjsgKytpKSB7CiAgICAgICAgaTY0IHg7IGNpbiA+PiB4OwogICAgICAgIFAgKz0geDsKICAgICAgICB3aGlsZSAoZHEuc2l6ZSgpID49IDIgJiYgZihkcVswXSwgUCkgPD0gZihkcVsxXSwgUCkpIGRxLnBvcF9mcm9udCgpOwogICAgICAgIGkxMjggYmVzdCA9IGYoZHFbMF0sIFApOwogICAgICAgIGkxMjggY3VyID0gKGkxMjgpQSAqIFAgKiBQICsgKGkxMjgpQiAqIFAgKyAoaTEyOClDICsgYmVzdDsKICAgICAgICBkcCA9IChpNjQpY3VyOwogICAgICAgIExpbmUgbmwgPSB7IC0yICogQSAqIFAsIGRwICsgQSAqIFAgKiBQIC0gQiAqIFAgfTsKICAgICAgICB3aGlsZSAoZHEuc2l6ZSgpID49IDIgJiYgYmFkKGRxW2RxLnNpemUoKS0yXSwgZHEuYmFjaygpLCBubCkpIGRxLnBvcF9iYWNrKCk7CiAgICAgICAgZHEucHVzaF9iYWNrKG5sKTsKICAgIH0KICAgIGNvdXQgPDwgZHAgPDwgJ1xuJzsKICAgIHJldHVybiAwOwp9