#include<bits/stdc++.h>
using namespace std;
int n,a[1000005];
long long m,sum;
int main(){
cin>>n>>m;
for(int i=1;i<=n;i++)cin>>a[i];
sort(a+1,a+n+1);//按从小到大的顺序排列
for(int i=1;i<a[n];i++)//让high从1到a[n]依次遍历
{
for(int j=1;j<=n;j++){
if(a[j]>i)sum+=a[i]-i;//让a[i]与high比较,高则砍掉
}
if(sum>m)continue;//可能会砍多,继续循环
else if(sum==m){
cout<<i;
break;
}//刚好合适,输出即为high
else{
cout<<i-1;//说明此时砍少了,则i-1即为最大的高
break;
}
}
return 0;
}
伐木工(没有使用二分)
于 2025-03-23 16:52:25 首次发布