伐木 题解
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;
}
这里空空如也







有帮助,赞一个