求助c++,二分答案70分!!!
错的三个点全是read到0。。。
#include<iostream>
#include<algorithm>
using namespace std;
typedef long long ll;
ll n,m,a[10000005],ans;
bool ok(ll x){
int ret=0;
for(int i=1;i<=n;i++){
if((a[i]-x)>0){
ret+=a[i]-x;
}
}
if(ret<m){
return 0;
}
else{
return 1;
}
}
int main(){
cin>>n>>m;
for(int i=1;i<=n;i++){
cin>>a[i];
}
sort(a+1,a+1+n);
ll l=a[1];
ll r=a[n]+1;
ll mid;
while(l<=r){
mid=(l+r)>>1;
if(ok(mid)){
l=mid+1;
ans=mid;
}else{
r=mid-1;
}
}
cout<<ans<<endl;
return 0;
}
求助orz