#include<bits/stdc++.h>
using namespace std;
long long len,n,m,a[1000000],d[1000000],x,y,minn=1e10;
int check(long long mid){
int p=0,q=1;
for(int i=1;i<=len;i++){
if(a[i]>0){
q=0;
continue;
}
if(q>=mid){
p++;
q=0;
}
q++;
}
if(p<=m){
return 1;
}
else{
return 0;
}
}
int main(){
scanf("%d%d%d",&len,&n,&m);
for(int i=0;i<=n-1;i++){
scanf("%d",&x);
a[x]++;
if(i>=1){
if(x-y<=minn){
minn=x-y;
}
}
y=x;
}
long long l=0,r=len,mid;
while(l<r){
mid=(l+r)/2;
if(check(mid)==1){
r=mid;
}
else{
l=mid+1;
}
}
cout<<min(l,minn);
}
放路标用的模拟,与原路标的最小空旷值比较。
自己跑样例没问题,但是交上去全RE
五彩斑斓地挂了