#include <bits/stdc++.h>
using namespace std;
long long int a[100005];
int n, m;
int maxx;
double ef(int sum) {
double l = 0;
double r = sum;
while (l < r) {
double mid = (l + r) / 2;
int ans = 0;
for (int i = 0; i < n; i++)
ans += a[i] / mid;
if (ans >= m)
l = mid + 0.0005;
else
r = mid - 0.0005;
}
return l;
}
int main() {
cin >> n >> m;
for (int i = 0; i < n; i++) {
cin >> a[i];
if (a[i] > maxx)
maxx = a[i];
}
double b = ef(maxx);
printf("%.2lf", b);
return 0;
}
题解:剪绳子(3月27日)
最新推荐文章于 2024-08-09 20:36:57 发布