记录编号 279010 评测结果 AAAAAAAAAA
题目名称 砍树 最终得分 100
用户昵称 Gravatarnsnsjsjjs 是否通过 通过
代码语言 C++ 运行时间 0.333 s
提交时间 2016-07-08 17:56:29 内存使用 2.05 MiB
显示代码纯文本
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;

void Read();
int Readd();
void Work();

int Tree[1000001];

int N, M, Ans;

int hhd() {
	Read();
	sort(Tree+1, Tree+N+1);
	Work();
	printf("%d", Ans);
	return 0;
}
int hh=hhd();

int main() {
	return 0;
}

void Read() {
	freopen("eko.in", "r", stdin);
	freopen("eko.out", "w", stdout);
	memset(Tree, 0, sizeof(Tree));
	scanf("%d%d", &N, &M);
	for(int i=1; i<=N; i++)
		Tree[i] = Readd();
	return;
}

inline int Readd() {
	int x=0;
	bool flag=true;
	char c=getchar();
	while(c>'9' || c<'0')
		c = getchar();
	while(c>='0' && c<='9')
		x = (x<<1)+(x<<3)+c-'0', c = getchar();
	return x;
}

void Work() {
	int sum=0;
	Ans = Tree[N];
	for(int i=N-1; i>=1; i--)
		if(Ans > Tree[i])
			if(sum+(Ans-Tree[i])*(N-i) < M) {
				sum += (Ans-Tree[i])*(N-i);
				Ans = Tree[i];
			} else {
				int m=sum+(Ans-Tree[i])*(N-i)-M;
				Ans = Tree[i]+m/(N-i);
				return;
			}
	return;
}