8 3 1
2
4
7
输出:2
#include<iostream>
#include<cstring>
using namespace std;
int a[50010],c[50010],L,n,m;
bool fun(int x){
int b=0;
memset(c,0,sizeof(c));
if(a[1]<x)b++,c[1]=1;
for(int i=2;i<=n;i++){
int d=i-1;
while(c[d]==1)d--;
if((a[i]-a[d])<x)b++,c[i]=1;
}
int d=n;
while(c[d]==1)d--;
if((L-a[d])<x)b++;
if(b>m)return false;
else return true;
}
int main(){
cin>>L>>n>>m;
for(int i=1;i<=n;i++){
cin>>a[i];
}
int l=1,r=1e6;
while(l<r){
int mid=l+(r-l)/2;
if(fun(mid)){
if(l==mid)break;
l=mid;
}
if(!fun(mid))r=mid;
}
cout<<l;
}