Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
127656 | 黄一航 | 上古神器 | C++ | 通过 | 100 | 32 MS | 1036 KB | 521 | 2024-01-25 09:47:44 |
#include <bits/stdc++.h> #define int long long using namespace std; int a[100005]; int n,m; bool chk(int dist) { int cnt = 1,lst = a[1]; for (int i = 2; i <= n; i++) if (a[i] - lst >= dist) lst = a[i],cnt++; return cnt >= m; } signed main() { cin >> n >> m; for (int i = 1; i <= n; i++) cin >> a[i]; sort(a + 1,a + n + 1); int l = 1,r = 1e9 + 5; while (l < r) { int mid = (l + r + 1) >> 1; if (chk(mid)) l = mid; else r = mid - 1; } printf("%lld\n",l); return 0; }