题解
2024-11-16 17:37:41
发布于:浙江
11阅读
0回复
0点赞
二分答案好吧
#include <bits/stdc++.h>
using namespace std;
int a[1000010];
int main(){
long long n,m,sum=0;
cin >> n >> m;
for(int i = 1;i <=n;i++) cin >> a[i];
sort(a+1,a+n+1);
long long l = 0,r = a[n],mid,ans;
while(l<=r){
sum = 0;
mid = (l+r)/2;
for(int j = 1;j <=n;j++){
if(a[j]>mid) sum+=a[j]-mid;
}if(sum>=m){
ans = mid;
l = mid+1;
}
else r = mid-1;
}cout << ans;
return 0;
}
这里空空如也
有帮助,赞一个