#include <bits/stdc++.h>
using namespace std;
int a[100001], l = 1, r, n, k;
int gym(int mid) {
int m = 0;
for (int i = 0; i < n; i++) {
int flag = a[i] - a[i - 1];
if (flag > mid) {
m += (flag - 1) / mid;
}
}
return m;
}
int main() {
cin >> r >> n >> k;
for (int i = 0; i < n; i++) {
cin >> a[i];
}
int ans;
while (l <= r) {
int mid = (l + r - 1) / 2;
if (gym(mid) <= k) {
ans = mid;
r = mid - 1;
} else {
l = mid + 1;
}
}
}
- 为什么本代码会超时?
- 怎么优化代码?
悬关!