#include <cstdio>
#include <algorithm>
using namespace std;
#define MAX_N 100000
#define INF 1000000000
int L,N,M;
int x[MAX_N];
bool C(int d){
int last = 0;
for(int i = 1;i < N - M + 2; i++){
int crt = last + 1;
while(crt < N+2 && x[crt] - x[last] < d){
crt++;
}
if(crt == N+2) return false;
last = crt;
}
return true;
}
void solve(){
int lb = 0, rb = INF;
while(rb - lb > 1){
int mid = (lb + rb) / 2;
if(C(mid)) lb = mid;
else rb = mid;
}
printf("%d\n", lb);
}
int main(){
scanf("%d%d%d",&L, &N, &M);
for(int i = 1;i <= N; i++)
scanf("%d", &x[i]);
x[N+1] = L;
x[0] = 0;
sort(x, x + N +2);
solve();
return 0;
}
poj 3258 River Hopscotch
最新推荐文章于 2023-09-01 13:59:36 发布