二分答案AC
2025-08-06 10:28:12
发布于:四川
1阅读
0回复
0点赞
#include<bits/stdc++.h>
using namespace std;
const int N = 1e6+10;
long long a[N];
long long n,m,mx=0,ans=0;
int main(){
cin>>n>>m;
for(int i=1;i<=n;i++){
cin>>a[i];
mx = max(mx,a[i]);
}
int l = 0,r = mx;
while(l<=r){
int mid = (l+r)/2;
long long sum = 0;
for(int i=1;i<=n;i++){
if(a[i] > mid){
sum += a[i] - mid;
}
}
if(sum >= m){
l = mid+1;
ans = mid;
}
else{
r = mid - 1;
}
}
cout<<ans;
return 0;
}
这里空空如也
有帮助,赞一个