666666
2024-03-13 21:02:00
发布于:山东
4阅读
0回复
0点赞
#include<cstdio>
int len, n, m;
int stone[50005];
bool check(int d) {
int num = 0;
int pos = 0;
for (int i = 1; i <= n; i)
if (stone[i] - pos < d) num;
else pos = stone[i];
if (num <= m) return true;
else return false;
}
int main() {
scanf("%d%d%d", &len, &n, &m);
for (int i = 1; i <= n; ++i) scanf("%d", &stone[i]);
stone[++n] = len;
int L = 0, R = len, mid;
while (L < R) {
mid = L + (R - L + 1) / 2;
if (check(mid)) L = mid;
else R = mid - 1;
}
printf("%d\n", L);
return 0;
}
这里空空如也
有帮助,赞一个