C++ 代码
#include<iostream>
using namespace std;
int a[50010];
int len,m,n;
int pp(int t){
int cnt=0;
int q=0;
for(int i=1;i<=n+1;i++){
if(a[i]-q>=t)q=a[i];
else cnt++;
}
if(cnt<=m)return 1;
else return 0;
}
int main()
{
cin>>len>>n>>m;
for(int i=1;i<=n;i++)cin>>a[i];
a[0]=0,a[n+1]=len;
int l=0,r=len;
while(l<r){
int mid=(l+r+1)>>1;
if(pp(mid))l=mid;
else r=mid-1;
}
if(m==n)cout<<len<<endl;
else cout<<r<<endl;
return 0;
}