Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
127196 | 黄一航 | 跳石头 | C++ | 通过 | 100 | 14 MS | 644 KB | 540 | 2024-01-25 08:21:47 |
#include <bits/stdc++.h> #define int long long using namespace std; int l,m,n; int a[50005]; bool chk(int dist) { int cnt = 0,lst = 0; for (int i = 1; i <= n; i++) { if (a[i] - lst < dist) cnt++; else lst = a[i]; } if (l - lst < dist) cnt++; return cnt <= m; } signed main() { cin >> l >> n >> m; for (int i = 1; i <= n; i++) cin >> a[i]; int le = 1,ri = l + 1; while (le + 1 < ri) { int mid = (le + ri) >> 1; if (chk(mid)) le = mid; else ri = mid; } printf("%lld\n",le); return 0; }