提交时间:2024-01-25 08:21:47
运行 ID: 127196
#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; }