#include<iostream>
using namespace std;
int L,N,M,l,r,i,j,s[50010];
int main ()
{
cin>>L>>N>>M;
for(i=1;i<=N;i++)
cin>>s[i];
s[N+1]=L;
r=L+1;
while(l+1<r)
{
int mid=(l+r)/2,k=0;i=0;
while(i<=N)
{
j=i+1;
while(s[j]-s[i]<mid&&j<N+2) j++;
k+=j-i-1;
i=j;
}
if(k>M)r=mid;
else l=mid;
}
cout<<l;
return 0;
}
codevs 4768 跳石头
最新推荐文章于 2023-07-19 22:09:13 发布
本文展示了一个使用C++实现的二分查找算法示例,该算法用于在一个已排序的整数数组中寻找使得区间内元素数量不超过给定值的最大长度。
301

被折叠的 条评论
为什么被折叠?



