记录编号 349899 评测结果 AAAAAAAAAA
题目名称 [NOIP 2015]跳石头 最终得分 100
用户昵称 GravatarAys 是否通过 通过
代码语言 C++ 运行时间 0.039 s
提交时间 2016-11-15 12:51:46 内存使用 0.62 MiB
显示代码纯文本
#include<iostream>
#include<cstdio> 
#include<cstring>
using namespace std;
long long a[50005]={0};
//5000
long long er(int c,int n){
	long long retur=0,jilu=0;
	int q=0;
	for(int i=0;i<=n;i++){
		if(a[i]-jilu<c){
			retur++;
			q=1;
		//	printf("jilu%lld  ",jilu);
		}
		else jilu=a[i];
		
		if(q==1){
			//jilu=jilu-a[i];
			q=0;
		}
	}
//	printf("re%lld  ",retur);
	return retur;
	
}
 
int main(){
	freopen("2015stone.in","r",stdin);
	freopen("2015stone.out","w",stdout);
	long long l,n,m;
	scanf("%lld%lld%lld",&l,&n,&m);
	for(int i=0;i<n;i++){
		long long di;
		scanf("%lld",&di);
		a[i]=di;
	}
	a[n]=l;
	long long first=0,last=l;
	long long ans=0;
	while(first<=last){
		long long c=(last-first)/2+first;
	//	printf("c%lld  ",c);
		if(er(c,n)>m){
			last=c-1;
		//	printf("last%lld  ",last);
		}
		else{//printf("er%lld  ",er(c,n));
			ans=c;
			first=c+1;
		//	printf("first%lld  ",first);
			
		}
	}
	printf("%lld",ans);
	return 0;
}
/*473552198 10 9
52952603 64207816 118368034 139315940 161298883 184195626 279451016 327682457 367473323 441630616*/