求助
一直卡在第八个测试点
#include <iostream>
#include <cstdio>
#include <algorithm>
#include <cmath>
using namespace std;
const int N=1e5+10;
double f[N];
int n,m;
bool check(double &mid){
int sum=0;
for(int i=1;i<=n;i++)
sum+=floor(f[i]/mid);
return sum>=m;
}
int main(){
double l=0,r=0;
scanf("%d%d",&n,&m);
for(int i=1;i<=n;i++){
scanf("%lf",&f[i]);
r=max(r,f[i]);
}
while(r-l>1e-5){
double mid=(l+r)/2;
if(check(mid)) l=mid;
else r=mid;
}
printf("%.2lf\n",floor(l*100)/100.00);
}