#include<bits/stdc++.h>
using namespace std;
int n,l;
long long q[50005];
double sum[50005],s[50005],dp[50005];
double xlv(int i,int j)
{
int xi,yi,xj,yj;
xi=s[i];yi=dp[i]+(s[i]+1+l)*(s[i]+1+l);
xj=s[j];yj=dp[j]+(s[j]+1+l)*(s[j]+1+l);
return (yj-yi)/(xj-xi);
}
int main()
{
scanf("%d%d",&n,&l);
for(int i=1;i<=n;i++)
{
scanf("%lf",&sum[i]);
sum[i]+=sum[i-1];s[i]=sum[i]+i;
}
int head,tail;head=tail=1;
for(int i=1;i<=n;i++)
{
int k;k=2*s[i];
while(head<tail&&xlv(q[head],q[head+1])<k)head++;
int j=q[head];
dp[i]=dp[j]+(s[i]-s[j]-1-l)*(s[i]-s[j]-1-l);
while(head<tail&&xlv(q[tail],i)<xlv(q[tail-1],q[tail]))tail--;
q[++tail]=i;
}
printf("%lld",(long long)dp[n]);
}