题解
2026-04-07 17:25:46
发布于:浙江
4阅读
0回复
0点赞
#include<iostream>
#include<algorithm>
using namespace std;
long long getWoodLen(long long n,long long h,long long tree[(int)(1e6)]){
long long out=0;
for(int i=0;i<n;i++){
if(tree[i]-h>0){
out+=tree[i]-h;
}
}
return out;
}
int main(){
long long n,m;
cin>>n>>m;
long long tree[n];
for(int i=0;i<n;i++){
cin>>tree[i];
}
sort(tree,tree+n);
long long max=tree[n-1],min=0,mid,ans=0;
while(min<=max){
mid=(max+min)/2;
if(getWoodLen(n,mid,tree)>=m){
min=mid+1;
ans=mid;
}else{
max=mid-1;
}
}
cout<<ans;
return 0;
}
不知道怎么全改成long long就过了
这里空空如也

有帮助,赞一个