记录编号 |
443470 |
评测结果 |
AAAAAAAAAA |
题目名称 |
[NOIP 2015]跳石头 |
最终得分 |
100 |
用户昵称 |
Lovelove_boii |
是否通过 |
通过 |
代码语言 |
C++ |
运行时间 |
0.053 s |
提交时间 |
2017-08-30 21:29:29 |
内存使用 |
0.50 MiB |
显示代码纯文本
#include<fstream>
using namespace std;
ifstream cin("2015stone.in");
ofstream cout("2015stone.out");
int l,n,m,stone[50002];
int left_,right_,ans;
bool judge(int answer)
{
int latest,moveable;
latest=0;
moveable=0;
for(int i=1;i<=n;i++)
{
if(stone[i]-latest<answer)
{
moveable++;
}
else
{
latest=stone[i];
}
}
if(moveable>m)
{
return true;
}
else
{
return false;
}
}
int main()
{
cin>>l>>n>>m;
for(int i=1;i<=n;i++)
{
cin>>stone[i];
}
stone[++n]=l;
left_=0;
right_=l;
while(left_<=right_)
{
ans=(left_+right_)/2;
if(judge(ans))
{
right_=ans-1;
}
else
{
left_=ans+1;
}
}
cout<<left_-1;
cin.close();
cout.close();
return 0;
}