#include<cstdio>
#include<iostream>
#include<algorithm>
using namespace std;
int n,k,l,r,now,biggest=-2e9,a;
int forest[1000002];
short check(int now)
{
int ans=0;
for(int i=1;i<=n;i++)
{
ans+=(forest[i]-now);
}
if(ans>k)
{
return 1;
}
if(ans==k)
{
return 0;
}
if(ans<k)
{
return -1;
}
}
int main()
{
cin>>n>>k;
for(int i=1;i<=n;i++)
{
cin>>forest[i];
if(biggest<forest[i])
{
biggest=forest[i];
}
}
l=1;
r=biggest;
now=(l+r)/2;
a=check(now);
for(int i=1;i<=1e4;i++)
{
a=check(now);
if(a==1)
{
l=now+1;
now=(l+r)/2;
}
if(a==0)
{
cout<<now;
break;
}
if(a==-1)
{
r=now-1;
now=(l+r)/2;
}
}
return 0;
}
没输出是怎么回事??