#include #include #include using namespace std; typedef long long LL; const int maxn=1000005; int n,Q[maxn],L,R; LL a,b,c,v[maxn],s[maxn],X[maxn],Y[maxn],f[maxn]; int main() { #ifdef local freopen("pro.in","r",stdin); #endif scanf("%d%lld%lld%lld",&n,&a,&b,&c); for(int i=1;i<=n;i++) scanf("%lld",&v[i]); for(int i=1;i<=n;i++) s[i]=s[i-1]+v[i]; Q[L=R=1]=0; for(int i=1;i<=n;i++) { while(L=2*a*s[i]*(X[Q[L+1]]-X[Q[L]])) L++; int j=Q[L]; f[i]=f[j]+a*(s[i]-s[j])*(s[i]-s[j])+b*(s[i]-s[j])+c; X[i]=s[i]; Y[i]=f[i]+a*s[i]*s[i]-b*s[i]; while(L