剪绳子(二分)
作者:
amagi
,
2023-10-05 18:02:16
,
所有人可见
,
阅读 105
#include <iostream>
#include <map>
#include <algorithm>
#include <queue>
#define ll long long
using namespace std;
const int N = 2e5 + 10;
double x[N],y[N];
int n,m;
bool ss(double a){
int summ = 0;
for(int i = 1; i <= n; i ++){
if(x[i] / a) summ += (x[i] / a);
}
if(summ >= m) return 1;
else return 0;
}
void solve(){
cin >> n >> m;
for(int i = 1; i <= n; i ++) cin >> x[i];
double l = 0,r = 1e9;
while(r - l >= 1e-3){
double mid = (r + l) / 2.0;
if(ss(mid)) l = mid;
else r = mid;
}
printf("%.2lf\n",l);
}
int main(){
solve();
return 0;
}