为什么这题只有一篇题解啊!!!!!
#include<iostream>
using namespace std;
#define maxn 100005
int L, N, K;
int a[maxn];
int l = 0, r = N + 1, mid = 0, ans = 0;
bool P(int x) {
int tot = 0, now = 0;
for(int i = 1; i < N; i ++)
if(a[i] - now > x) {
now = now + x;
i --;
tot ++;
} else
now = a[i];
return tot <= K;
}
int main() {
cin >> L >> N >> K;
for(int i = 1; i <= N; i ++)
cin >> a[i];
while(l <= r)
if(P(mid = l + (r - l) / 2))
ans = mid, r = mid - 1;
else
l = mid + 1;
cout << P(-1);
return 0;
}