1 条题解
-
0
C++ :
#include <bits/stdc++.h> using namespace std; int n, k, a[100005], l, r, ans; bool check(int x) { int now = 1, cnt = 0; for (int i = n; i >= now; i--) { if (i == now) { cnt++; continue; } if (a[i] + a[now] <= x) now++; cnt++; } return cnt <= k; } int main() { cin >> n >> k; for (int i = 1; i <= n; i++) { cin >> a[i]; } sort(a+1,a+1+n); l = a[n], r = a[n - 1] + a[n]; while (l <= r) { int mid = (l + r) >> 1; if (check(mid)) r = mid - 1, ans = mid; else l = mid + 1; } cout << ans; return 0; }
信息
- ID
- 537
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- (无)
- 标签
- (无)
- 递交数
- 0
- 已通过
- 0
- 上传者