#include<bits/stdc++.h>
#define ll long long
using namespace std;
const int N=1e6+10;
int n,k,a[N],mxd=-1;
ll cnt=0;
int dfs(int x,int j,int d,int la){
if(j<0) return 0;
if(x==n+1){
cnt++;
return 1;
}
int nw=la+d;
if(nw<a[x]) return a[x]-nw+1;
else return dfs(x+1,j-nw+a[x],d,nw);
}
int main(){
ios::sync_with_stdio(false);
cin.tie(0);cout.tie(0);
cin>>n>>k;
for(int i=1;i<=n;i++)
cin>>a[i];
if(n==1){
cout<<k+1;
return 0;
}
mxd=a[2]-a[1]+k;
int mn=a[2]-a[1];
if(a[2]<a[1]) mn=0;
for(int i=mn;i<=mxd;i++){
if(dfs(2,k,i,a[1])==0) break;
for(int j=a[1]+1;j<=a[1]+k;j++){
int dj=dfs(2,k-j+a[1],i,j);
if(dj==0) break;
else if(dj!=1) j+=dj,j-=2;
}
}
cout<<cnt;
return 0;
}
不要给正解,只求hack