标题逃跑大作战
时间限制: 1Sec 内存限制: 128MB
题目描述
狗熊岭来了一个新的天才威博士,这天天才威被熊大和熊二追逐到一条河边,这条河的宽度是L(1<=L<=1000000000)。河上有n(0<= n <= 500000)块石头从河的一边到另一边排成一条直线。
天才威只能跳过河,但它可以跳到石头上。如果掉到河里,就会被河里的鳄鱼吃掉。要求天才威最多跳m次(1<= m <= n+1)。现在请你预测一下天才威至少要跳跃的最长距离。
输入
输入包含几个案例。每种情况的第一行包含三个正整数L、n和m。
然后是n行。每一块代表从岸边开始到第n块石头的距离,两块石头出现在一个地方是不可能的。
输出
对于每种情况,输出一个整数,代表天才威至少要跳跃的最长距离。
样例输入
6 1 2
2
25 3 3
11
2
18
样例输出
4
11
//二分法求最大化最小值与最小化最大值
#include <iostream>
#include <algorithm>
#include <cstring>
#define maxn 500005
using namespace std;
typedef long long ll;
ll L,n,m;
ll d[maxn]; //保存每个石头距离岸边的距离
bool judge(int mid)
{
int start=0,x=0,i;
for(i=1