#include <bits/stdc++.h>
using namespace std;
#define int long long
int n,L;
const int N=1e5+5;
int c[N];
int q[N],h,t;
int f[N];
int x(int p){
return c[p]-p;
}
int y(int p){
return f[p]+(c[p]-p)*(c[p]-p);
}
int k(int p){
return 2*(c[p]-p-L+1);
}
signed main(){
cin>>n>>L;
for(int i=1;i<=n;i++){
cin>>c[i];
c[i]+=c[i-1];
}
for(int i=1;i<=n;i++){
int l=h,r=t;
while(l<r){
int mid=l+r>>1;
if(y(q[mid+1])-y(q[mid])>k(i)*(x(q[mid+1])-x(q[mid]))) r=mid;
else l=mid+1;
}
int j=q[l];
f[i]=f[j]+(j-i+c[i]-c[j]-L+1)*(j-i+c[i]-c[j]-L+1);
while(h<t&&(y(q[t])-y(q[t-1]))*(x(i)-x(q[t]))>=(y(i)-y(q[t]))*(x(q[t])-x(q[t-1]))) t--;
q[++t]=i;
}
cout<<f[n];
}