测试点4,7,11还有subtask都是WA
#include <bits/stdc++.h>
using namespace std;
vector<int> v;
int l, n, m;
bool judge(const int& mid) {
int c = 0;
int current = 0;
int next = 0;
while (next < n+1) {
++next;
if (v[next] - v[current] < mid) {
++c;
}
else current = next;
}
if (c > m) return false;
else return true;
}
int main() {
cin >> l >> n >> m;
for (int i = 0; i < n; ++i) {
int a; cin >> a;
v.push_back(a);
}
v.push_back(l);
int left = 1, right = l;
int mid = 0, ans = l;
while (right >= left) {
mid = left + ((right - left) >> 1);
if (judge(mid)) {
ans = mid;
left = mid + 1;
}
else right = mid - 1;
}
cout << ans;
return 0;
}