#include<algorithm>
#include<iostream>
#include<iomanip>
#include<cstdio>
#include<queue>
#include<string>
#include<vector>
using namespace std;
const int N = 1e5+10;
int L,n,k,a[N],maxx = -1,c;
bool check(int x){
int cnt = 0;
for(int i = 1;i <= n;i++){
if(a[i] - a[i-1] > x){
cnt += ((a[i] - a[i-1]) / x);
if((a[i]) - a[i-1] % x == 0) cnt--;
}
}
return cnt <= k;
}
int main(){
scanf("%d%d%d",&L ,&n,&k);
for(int i = 1;i <= n;i++){
scanf("%d",&a[i]);
}
a[++n]=L;
int l = 1,r = L,mid;
while(l < r){
mid = (l + r) / 2;
if(check(mid)) r = mid;
else l = mid+1;
}
printf("%d",l);
}
80 求助