8 条题解
-
0
#include <iostream> using namespace std; int a[1000010]; int main() { cin.tie(0); cout.tie(0); long long n, m, max = -1, u = 0, x = 0; cin >> n >> m; for (int i = 1; i <= n; i++) { cin >> a[i]; if (max < a[i]) { max = a[i]; } } long long l = 0, r = max; while (l <= r) { u = 0; int mid = (l + r) / 2; for (int i = 1; i <= n; i++) { if (a[i] > mid) { u += a[i] - mid; } } if (u >= m) { x = mid; l = mid + 1; } else { r = mid - 1; } } cout << x; return 0; }
信息
- ID
- 89
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 7
- 标签
- 递交数
- 1686
- 已通过
- 363
- 上传者