#include<bits/stdc++.h>
using namespace std;
int l1,n,m;
int d[50001];
int bz(int s){
int cnt = 0;
if(d[1] - 1 < s){
cnt++;
}
for(int i = 2; i <= n; i++){
if(i == n){
if(l1 - d[i] < s){
cnt++;
}
break;
}
if(d[i] - d[i - 1] < s){
if(d[i + 1] - d[i] < s){
cnt++;
i++;
continue;
}else{
cnt++;
}
}
}
return cnt;
}
int main(){
cin>>l1>>n>>m;
for(int i = 1; i <= n; i++){
cin>>d[i];
}
if(n == m){
cout<<l1;
return 0;
}
int l = 1,r = l1;
while(l < r){
int mid = (r + l) / 2;
if(bz(mid) < m){
l = mid + 1;
}else{
r = mid;
}
}
cout<<l;
return 0;
}
测试结果