小小砍树何足惧哉
2024-08-28 16:19:24
发布于:广东
7阅读
0回复
0点赞
#include<bits/stdc++.h>
using namespace std;
int a[1005];
int n,m;
bool check(int mid){
int sum = 0;
for(int i = 0;i < n;i ++){
if(mid < a[i]){
sum += a[i] - mid;
}
}
if(sum >= m){
return 1;
} else {
return 0;
}
}
int main(){
int max = 0;
cin >> n >> m;
for(int i = 0;i < n;i ++){
cin >> a[i];
if(a[i] > max){
max = a[i];
}
}
int l = 0,r = max,mid,ans = 0;
while(l <= r){
mid = (l + r) / 2;
if(check(mid)){
l = mid + 1;
ans = mid;
} else {
r = mid - 1;
}
}
cout << ans;
return 0;
}
这里空空如也
有帮助,赞一个