AC题解
2026-09-06 14:38:16
发布于:江西
5阅读
0回复
0点赞
#include <bits/stdc++.h>
using namespace std;
long long n, k, a[1000010];
bool check(long long l) {
if (l == 0) return false;
long long total = 0;
for (int i = 0; i < n; ++i) {
total += a[i] / l;
if (total >= k) return true;
}
return false;
}
int main() {
cin >> n >> k;
long long c = 0;
for (int i = 0; i < n; ++i) {
cin >> a[i];
c = max(c, a[i]);
}
long long l = 1, r = c, ans = 0;
while (l <= r) {
long long m = l + (r - l) / 2;
if (check(m)) {
ans = m;
l = m + 1;
} else {
r = m - 1;
}
}
cout <<ans;
}
这里空空如也







有帮助,赞一个