题目
#include<bits/stdc++.h>
using namespace std;
double n,k,a[10005],l,r=10000000,ans=-1000;
int f(double x){
int t=0;
for(int i=1;i<=n;i++){
t+=int(a[i]/x);
}
if(t>=k)return 1;
return 0;
}
int main(){
cin>>n>>k;
for(int i=1;i<=n;i++){
cin>>a[i];
a[i]*=100;
}
while(l<=r){
int mid=(l+r)/2;
if(f(mid)){
l=mid+1;
if(mid>ans) ans=mid;
}
else{
r=mid-1;
}
}
printf("%.2lf",ans/100);
return 0;
}
有一个点一直过不去