救命!调了一下午不知道哪里出了问题。。。
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N=1e6+5;
int a[N],n,m;
ll ans,l,r=1e9;
bool P(int mid)
{
ll cnt=0;
for(int i=1;i<=n;i++)
{
int j = a[i]-mid;
cnt+=(j>0?j:0);
}
return cnt>m;
}
void input()
{
scanf("%d%d",&n,&m);
for(int i=1;i<=n;i++)
{
scanf("%d",&a[i]);
}
}
void work()
{
while(l<r)
{
int mid = l+r>>1;
if(P(mid))l=mid+1;
else r=mid-1;
}
printf("%d",l);
}
int main()
{
input();
work();
return 0;
}