@[Hachieve](/user/244294)
```cpp
#include<cstdio>
#include<algorithm>
using namespace std;
const int N=1e5+5;
int L,n,k;
int a[N];
int read(){
int x=0,f=1;
char ch=getchar();
while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();}
while(ch>='0'&&ch<='9')
x=x*10+ch-'0',ch=getchar();
return x*f;
}
bool check(int dis){
int num=0;
for(int i=2;i<=n;++i){
if( (a[i]-a[i-1]) <= dis)continue;
if((a[i]-a[i-1])/dis*dis==(a[i]-a[i-1]))
num+=((a[i]-a[i-1])/(dis+1));//
else
num+=(a[i]-a[i-1])/dis;
if(num>k)return 0;
}
// printf("[%d %d]\n",dis,num);
return 1;
}
int main(){
L=read(),n=read(),k=read();
for(int i=1;i<=n;++i)
a[i]=read();
sort(a+1,a+1+n);
int l=1,r=2*L;
int mid;
while(l<r){
mid=(l+r)/2;
if(check(mid))
r=mid;
else
l=mid+1;
// printf("%d %d\n",l,r);
}
printf("%d\n",(l+r)/2);
return 0;
}
```
by A1438329629 @ 2023-06-21 15:48:54
@[A1438329629](/user/583276) 谢谢
by __Chtholly @ 2023-06-21 17:15:41