https://www.luogu.org/problem/show?pid=1297#sub
将小数先转化为整数处理,而且最后要/100.0 而不是100
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<vector>
#include<queue>
#include<cmath>
using namespace std;
int n,k;int l,r;
int a[10009];
int check(int x)
{
int t=0;
for(int i=1;i<=n;i++)
{
t+=a[i]/x;
}
return t;
}
int main()
{
scanf("%d%d",&n,&k);
for(int i=1;i<=n;i++)
{
double p;
scanf("%lf",&p);
a[i]=p*100;
r=max(r,a[i]);
}
l=1;
while(l<=r)
{
int mid=(l+r)>>1;
if(check(mid)>=k)
l=mid+1;
else r=mid-1;
}
double ans;
ans=r/100.0;
printf("%.2lf",ans);
return 0;
}