题解
2025-09-27 16:46:19
发布于:浙江
1阅读
0回复
0点赞
#include<bits/stdc++.h>
using namespace std;
const int N=1e6+10;
int n,m,h=0,s=-1;
int a[N];
int main(){
cin>>n>>m;
for(int i=1;i<=n;i++){
cin>>a[i];
s=max(s,a[i]);
}
int l=0,r=s;
while(r>=l){
int cnt=0;
int mid=(l+r)/2;
for(int i=1;i<=n;i++){
if(a[i]-mid>0){
cnt+=a[i]-mid;
}
}
if(cnt>=m){
h=max(h,mid);
l=mid+1;
}
else{
r=mid-1;
}
}
cout<<h;
return 0;
}
这里空空如也
有帮助,赞一个