时间限制: 1 s

 空间限制: 128000 KB
 题目等级 : 黄金 Gold 
题目描述 Description

一年一度的“跳石头”比赛又要开始了!

这项比赛将在一条笔直的河道中进行,河道中分布着一些巨大岩石。组委会已经选择好了两块岩石作为比赛起点和终点。在起点和终点之间,有N块岩石(不含起点和终点的岩石)。在比赛过程中,选手们将从起点出发,每一步跳向相邻的岩石,直至到达终点。

为了提高比赛难度,组委会计划移走一些岩石,使得选手们在比赛过程中的最短跳跃距离尽可能长。由于预算限制,组委会至多从起点和终点之间移走M块岩石(不能移走起点和终点的岩石)。

输入描述 Input Description

输入文件名为 stone.in。

输入文件第一行包含三个整数L,N,M,分别表示起点到终点的距离,起点和终点之间的岩石数,以及组委会至多移走的岩石数。

接下来N行,每行一个整数,第i行的整数Di(0 < Di < L)表示第i块岩石与起点的距离。这些岩石按与起点距离从小到大的顺序给出,且不会有两个岩石出现在同一个位置。

输出描述 Output Description

输出文件名为stone.out。

输出文件只包含一个整数,即最短跳跃距离的最大值。

样例输入 Sample Input

25 5 2

2

11

14

17

21

样例输出 Sample Output

4

数据范围及提示 Data Size & Hint

对于20%的数据,0≤M≤N≤10。 对于50%的数据,0≤M≤N≤100。

对于50%的数据,0≤M≤N≤100。

对于100%的数据,0≤M≤N≤50,000,1≤L≤1,000,000,000。

 #include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
int l,n,m,ans;
int d[];
bool check(int num)
{
int cnt=,last=;
for(int i=;i<=n;i++)
{
if(d[i]-last<num) cnt++;
else last=d[i];
}
if(cnt>m) return false;
return true;
}
int main()
{
cin>>l>>n>>m;
for(int i=;i<=n;i++)
cin>>d[i];
d[++n]=l;
int left=,right=l;
while(left<=right)
{
int mid=(right+left)/;
if(check(mid)){
ans=mid;
left=mid+;
}
else right=mid-;
}
cout<<ans;
return ;
}

思路:二分答案,答案最小是1,最大的情况下等于l,所以二分,二分枚举Mid判断,知道二分的情况能让间距不足mid的为m块石头

最新文章

  1. 【Android】Android Studio 快速打开Github上的Demo
  2. RFC(请求注解)--各种协议-标准
  3. 观察者模式及Java实现例子
  4. oracle学习之表空间
  5. centos rm -rf 恢复删除的文件
  6. Quartz将Job保存在数据库中所需表的说明
  7. webdriver(python)学习笔记五——层级定位
  8. ios-NSString总结
  9. RichTextBox返回值标记不同颜色
  10. SSL证书的分类(按功能)
  11. Delphi 的接口机制——接口操作的编译器实现过程(1)
  12. SSH框架的简化
  13. IT(计算机/软件/互联网)专业词汇宝典(持续更新中)
  14. mac下通过mdfind命令搜索文件
  15. Python之list列表方法详解
  16. List接口:(介绍其下的两个实现类:ArrayList和LinkedList)
  17. 跨域CORS 头缺少 &#39;Access-Control-Allow-Origin&#39;
  18. 支持向量机-SVM 学习
  19. bigdecimal 与long int 之间转换
  20. SQL实现交,并,差操作

热门文章

  1. Java_基础_内存管理
  2. php对比辨析之 mysql_escape_string &amp; mysql_real_escape_string &amp; addsalshes
  3. 代码片段---判断一文件是不是字符设备如果是把它拷贝到 /dev目录下
  4. 关于变量在for循环内外定义的思考
  5. PathAnimation
  6. 批量更新memcached缓存
  7. EasyUI设置复选框单选操作
  8. Git 对象
  9. C语言中的内存压缩技术
  10. 查询SQL SERVER数据库日志工具