~~说句实话这题我是暴力AC然后就再没想过正解~~
```cpp
#include <bits/stdc++.h>
#define int LL
using namespace std;
typedef long long LL;
const int INF=0x3f3f3f3f3f3f3f3f;
const int MAX_N=1000005;
int dp[MAX_N];
int sum[MAX_N];
int a,b,c;
int n;
int A[MAX_N];
int F(int x)
{
return a*x*x+b*x+c;
}
signed main()
{
// freopen("data.in","r",stdin);
cin>>n;
cin>>a>>b>>c;
for(int i=1;i<=n;i++)
{
cin>>A[i];
sum[i]=sum[i-1]+A[i];
}
int mx=0;
for(int i=1;i<=n;i++)
{
dp[i]=-INF;
for(int j=mx;j<i;j++)
{
// dp[i]=max(dp[i],dp[j]+F(sum[i]-sum[j]));
if(dp[j]+F(sum[i]-sum[j])>dp[i])
{
dp[i]=dp[j]+F(sum[i]-sum[j]);
mx=j;
}
}
}
cout<<dp[n]<<endl;
return 0;
}
```
by Smile_Cindy @ 2019-08-22 20:31:02
~~重打岂不美哉~~
by FZzzz @ 2019-08-22 20:45:10