记录编号 278348 评测结果 AAAAAAAAAA
题目名称 砍树 最终得分 100
用户昵称 Gravatar (=@__@=) 是否通过 通过
代码语言 C++ 运行时间 1.309 s
提交时间 2016-07-07 17:30:27 内存使用 4.13 MiB
显示代码纯文本
#include<iostream> 
#include<cstdio>
#include<cstring> 
#include<algorithm>
using namespace std;
int n,m,a[1001010],h=0;
bool treee(int x)
{
    long long tree=0;
	for(int i=1;i<=m;i++)
		if(a[i]>x)
			tree+=a[i]-x;
	if(tree>=n)
		return true;
	else
		return false;
}
int tree()
{
	int left=1,right=2000000000;
	while(left+1<right)
	{
		int mid=(left+right)/2;
		if (treee(mid))  
			left=mid;
		else
			right=mid;
		
	}
	if(treee(right))
		return right;
	if(treee(left))
		return left;
}

int main() 
{
	freopen("eko.in","r",stdin);
	freopen("eko.out","w",stdout);
	int i,s;
	cin>>m>>n;
	for(i=1;i<=m;i++)
		cin>>a[i];
	sort(a+1,a+m+1);
	cout<<tree();
	return 0; 
}