如标题,
倒数第二个点答案是0.65
我输出的是0.87
代码如下:
#include <bits/stdc++.h>
using namespace std;
int n,k;
double a[10005];
double l=1,mid,r;
double check(double m){
int cnt=0;
for (int i=1;i<=n;i++)
cnt+=a[i]/m;
return cnt>=k;
}
int main (){
double sum=0;
scanf ("%d %d",&n,&k);
for (int i=1;i<=n;i++) scanf ("%lf",&a[i]),r=max(a[i],r),sum+=a[i];
if (k>sum){printf ("%0.2lf",floor(sum/k*100)/100.);exit(0);}
r++;
while (r-l>=1e-3){
mid=(l+r)/2.0;
if (check(mid)) l=mid;
else r=mid;
}
printf ("%.2lf",l);
}