检查了很久,没有发现问题啊!!!求dalao解答,60分代码没有超时
#include<bits/stdc++.h>
using namespace std;
long long n,m,a[10000005],maxs=-1;
long long money(long long x){
long long sum=0;
for(long long i=1;i<=n;i++){
if(a[i]>x){
sum=sum+(a[i]-x);
}
}
return sum;
}
long long find(long long x){
long long l=0,r=maxs,mid;
while(l<r){
mid=(l+r)/2;
if(money(mid)<x){
r=mid;
}
if(money(mid)>x){
l=mid+1;
}
if(money(mid)==x){
return mid;
}
}
return mid;
}
int main()
{
cin>>n>>m;
for(long long i=1;i<=n;i++){
cin>>a[i];
if(a[i]>maxs){
maxs=a[i];
}
}
cout<<find(m);
return 0;
}