伐木 题解
2024-08-04 16:55:31
发布于:广东
#include<bits/stdc++.h>
using namespace std;
int a,b[1000005];
long long s;
bool cmp(int a,int b){
return a>b;
}
int main(){
scanf("%d%lld",&a,&s);
for(int i=0;i<a;i++){
scanf("%d",&b[i]);
}
sort(b,b+a,cmp);
long long i=0,h=b[0],ans=1,sum=0;
while(true){
if((b[i]-b[i+1])*ans>=s){
h-=s/ans;
break;
}else{
h=b[i+1];
s-=(b[i]-b[i+1])*ans;
i++;
ans++;
sum=-1;
}
}
printf("%d",h+sum);
return 0;
}
这里空空如也
有帮助,赞一个