#include<bits/stdc++.h>
using namespace std;
int n,k;
double sum,ans,a[100001],mid;
bool check(double mid){
sum=0;
for(int i=1;i<=n;i++){
if(a[i]>mid){
sum=sum+a[i]/mid;
}
}
if(sum>=k)return 1;
else return 0;
}
void qsort(int L,int r){
int i,j;
double x;
i=L;j=r;x=a[(L+r)/2];
do{
while(a[i]<x)i++;
while(a[j]>x)j--;
if(i<=j){
swap(a[i],a[j]);
i++;j--;
}
}while(i<=j);
if(L<j)qsort(L,j);
if(i<r)qsort(i,r);
}
int main(){
cin>>n>>k;
for(int i=1;i<=n;i++)cin>>a[i];
qsort(1,n);
double left=0.01,right=a[n];
while(left<=right){
mid=(left+right)/2.0;
if(check(mid)){
left=mid+0.01;
ans=mid;
}
else right=mid-0.01;
}
printf("%.2f",ans);
return 0;
}
wa了7个点,ac了6个点,为何51分? dalao看看代码,99孩子吧...