#include<cstdio>
#include<cstdlib>
#include<iostream>
#include<cstring>
using namespace std;
int n,k;
double a[20000];
int main()
{
int i,l=0,r=0,t,mid;
double x;
cin>>n; cin>>k;
for(i=1;i<=n;i++)
{
cin>>x;
a[i]=x*100;
if(a[i]>r) r=a[i];
}
r=r+1;
while(l<r-1) //或者了l<=r因为l可以等于r;
{
t=0;
mid=(l+r)/2;
for(i=1;i<=n;i++)
t+=a[i]/mid;
if(t>=k) l=mid; //为求最大的情况而往后推
else if(t<k) r=mid;
}
mid=l;
if(mid<1) printf("0.00");
else { x=(double)mid/100; printf("%.2f",x); }
return 0;
}
NOI题库之二分 网线主管
最新推荐文章于 2024-03-03 13:58:31 发布