记录编号 |
434334 |
评测结果 |
AAAAAAAAAA |
题目名称 |
[NOIP 2015]跳石头 |
最终得分 |
100 |
用户昵称 |
Cooook |
是否通过 |
通过 |
代码语言 |
C++ |
运行时间 |
0.037 s |
提交时间 |
2017-08-07 18:43:00 |
内存使用 |
0.50 MiB |
显示代码纯文本
#include<cstdlib>
#include<iostream>
#include<queue>
#include<cstdio>
using namespace std;
int a[50001];
int l,n,m;
bool can(int mide)
{
int step=0,sum=m;
for(int i=1;i<=n;i++)
if(step+mide<=a[i])
step=a[i];
else
if(!(sum--))
return 0;
if(step+mide>l)
if(!(sum--))
return 0;
return 1;
}
int main()
{
freopen("2015stone.in","r",stdin);
freopen("2015stone.out","w",stdout);
scanf("%d%d%d",&l,&n,&m);
for(int i=1;i<=n;i++)
scanf("%d",&a[i]);
int left=0,right=l;
while(left!=right)
{
int mide=(left+right+1)/2;
if(can(mide))
left=mide;
else
right=mide-1;
}
cout<<left<<endl;
}