记录编号 531277 评测结果 AAAAA
题目名称 [Tyvj国庆欢乐赛] 山头狙击战 最终得分 100
用户昵称 Gravatarwire 是否通过 通过
代码语言 C++ 运行时间 0.060 s
提交时间 2019-05-10 19:35:12 内存使用 14.04 MiB
显示代码纯文本
#include<bits/stdc++.h>
#define MAX 100000
using namespace std;
int d[MAX];
int n,m1;
bool tryy(int m)
{
	int tmp=0;
	if(d[1]>m1)
	{
		tmp=d[1]-m1;
	}
	bool flag=true;
	int i=2;
	while(i<=n)
	{
		tmp=m+tmp;
		if(tmp>d[i])
		{
			flag=false;
			break;
		}
		if(d[i]-tmp>m1)
		{
			tmp=tmp-m;
			tmp+=d[i]-tmp-m1;
		}
		i++;
	}
	if(flag)
	{
	return 1;	
	}
	return 0;
}
int main()
{
	freopen("battle.in","r",stdin);
	freopen("battle.out","w",stdout);
    int A=0,B=INT_MAX,ans=0;
	cin>>n>>m1;
	for(int i=1;i<=n;i++)
	{
	cin>>d[i];	
	}
	sort(d+1,d+1+n); 
	for(int i=0;i<40;i++)
	{
		int m=(A+B)/2;
		if(tryy(m))  A=m+1,ans=m;
		else B=m-1; 
	}
	cout<<ans;
	return 0;
}