黄浙峰老师 • 17天前
using namespace std;
const int N=1e6+10;
long long a[N];
long long n,m,l=1,r,mid;
bool check(long long x){
long long s=0;
for(int i=1;i<=n;i++){
if(x<a[i]) s+=a[i]-x;
if(s>=m) return 1;
}
return 0;
}
int main(){
cin>>n>>m;
for(int i=1;i<=n;i++){
cin>>a[i];
r=max(a[i],r);
}
while(l<=r){
mid=l+r>>1;
if(check(mid)) l=mid+1;
else r=mid-1;
}
cout<<l-1;
return 0;
}
评论: