跳石头
题目描述
输入
输出
样例输入
25 5 2
2
11
14
17
21
样例输出
4
提示
代码如下:
#include<cstdio>
int l,r,L,M,N,a[500005],tot,mid,left;
int main()
{
scanf("%d %d %d",&L,&N,&M);
r=a[N+1]=L;
for(int i=1;i<=N;i++)
scanf("%d",&a[i]);
while(l<=r)
{
mid=(r+l)/2;
left=0;
tot=0;
for(int i=1;i<=N+1;i++)
if(a[i]-a[left]<=mid) tot++;
else left=i;
if(tot<=M) l=mid+1;
else r=mid-1;
}
printf("%d",l);
}