#include<bits/stdc++.h>
using namespace std;
const int N=50005,M=N;
int L,n,m,A[N],l,r,mid,ans;
bool check(int k)
{
ans=0;
int ll,now;
while(ll<=n)
{
ll++;
if(A[ll]-A[now]<k) ans++;
else now=ll;
}
return ans<=m;
}
int main()
{
scanf("%d%d%d",&L,&n,&m);
for(int i=1;i<=n;i++)
scanf("%d",&A[i]);
A[++n]=L;
l=0,r=1000000000;
while(l<=r)
{
printf("%d %d\n",l,r);
mid=(l+r)>>1;
if(check(mid)) l=mid+1;
else r=mid-1;
}
printf("%d\n",l);
return 0;
}
为什么printf("%d %d\n",l,r);加与不加的结果不一样?