本地输出38,求助QwQ
#include<iostream>
const int M=5e4+5;
int n,L,r,l=1,s[M],q[M],dp[M];
inline int pow(int a){return a*a;}
inline int y(int a){return dp[a]+pow(s[a]+L);}
signed main()
{
int i,j;
std::ios::sync_with_stdio(false);
std::cin>>n>>L;++L;
for(i=1;i<=n;++i)
{
std::cin>>s[i];s[i]+=s[i-1]+1;
while(l<=r&&(y(q[l+1])-y(q[l])<=2*s[i]*(s[q[l+1]]-s[q[l]])))++l;
j=q[l];dp[i]=dp[j]+pow(s[i]-s[j]-l);
while(l<=r&&((y(q[r])-y(q[r-1]))*(s[i]-s[q[r]])>=(y(i)-y(q[r]))*(s[q[r]]-s[q[r-1]])))--r;
q[++r]=i;
}
std::cout<<dp[n];
}