#include<bits/stdc++.h>
using namespace std;
typedef long long LL;
int a[501000];
int main()
{
int n,k;
while(scanf("%d%d",&n,&k)!=EOF)
{
int MAX=-2e9,MIN=2e9;
LL s=0;
for(int i=1;i<=n;i++) {scanf("%d",&a[i]);s=s+a[i];MAX=max(MAX,a[i]);MIN=min(MIN,a[i]);}
int maxn=0,minn=0;
int l=MIN,r=MAX;
while(l<=r)
{
int mid=(l+r)/2;
LL temp=0;
for(int i=1;i<=n;i++) if(mid>a[i]) {temp=temp+mid-a[i];}
if(temp<=k) {l=mid+1;minn=mid;}
else r=mid-1;
}
l=MIN,r=MAX;
while(l<=r)
{
int mid=(l+r)/2;
LL temp=0;
for(int i=1;i<=n;i++) if(a[i]>mid) temp=temp+a[i]-mid;
if(temp>k) l=mid+1;
else {r=mid-1;maxn=mid;}
}
int ans=s%n==0?0:1;
printf("%d\n",max(ans,maxn-minn));
}
return 0;
}
/*
7 6
3 2 4 1 8 8 7
4 72
1 4 1 6
*/
二分
最新推荐文章于 2024-04-29 23:51:10 发布