记录编号 462577 评测结果 AAAAAAAAAA
题目名称 砍树 最终得分 100
用户昵称 GravatarWHZ0325 是否通过 通过
代码语言 C++ 运行时间 0.677 s
提交时间 2017-10-22 17:36:41 内存使用 7.92 MiB
显示代码纯文本
#include <cstdio>
#include <algorithm>
using namespace std;
typedef long long int ll;
ll n,m;
ll arr[1000005];
inline bool check(ll x) {
	ll ans=0;
	for(ll i=n-1;i>=0;--i) {
		if(arr[i]>x) {
			ans+=arr[i]-x;
		}
		else {
			break;
		}
	}
	return ans>=m;
}
int main() {
	freopen("eko.in","r",stdin);
	freopen("eko.out","w",stdout);
	scanf("%lld%lld",&n,&m);
	for(ll i=0;i<n;++i) {
		scanf("%lld",&arr[i]);
	}
	sort(arr,arr+n);
	ll l=0,r=arr[n-1],mid;
	while(l<r) {
		mid=(l+r+1)>>1;
		if(check(mid)) {
			l=mid;
		}
		else {
			r=mid-1;
		}
	}
	printf("%lld\n",l);
	fclose(stdin);
	fclose(stdout);
	return 0;
}