提交时间:2024-01-25 09:22:27

运行 ID: 127518

#include <bits/stdc++.h> using namespace std; int n, p, a[100005]; bool check(int x) { int tot = a[1], cnt = 1; for (int i=2; i<=n; i++) { if (a[i]-tot >= x) tot = a[i], cnt++; } return cnt >= p; } signed main() { scanf("%d%d", &n, &p); for (int i=1; i<=n; i++) scanf("%d", &a[i]); sort(a+1, a+1+n); int l = 1, r = 1e9+5; while (l < r) { int mid = (l + r + 1) >> 1; if (check(mid)) l = mid; else r = mid - 1; } printf("%d", l); return 0; }