Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
127518 | 廖悦扬 | 上古神器 | C++ | 通过 | 100 | 16 MS | 648 KB | 487 | 2024-01-25 09:22:27 |
#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; }