```cpp
#include <stdio.h>
#define int long long
int l,n,m,a[50010]={0};
signed main(){
scanf("%d%d%d",&l,&n,&m);
for(int i=1;i<=n;i++){
scanf("%d",&a[i]);
}
a[n+1]=l;
if(n==m){
printf("%d",l);
return 0;
}
int left=0,right=l;
while(left<=right){
int temp=0,num=0;
int mid=left+(right-left)/2;
for(int i=1;i<=n+1;i++){
if(a[i]-temp>=mid){
temp=a[i];
}
else num++;
}
if(num>m)right=mid-1;
else left=mid+1;
}
printf("%d",right);
return 0;
}
```
by chuxm @ 2024-03-16 13:08:51