#include<stdio.h>
#include<string.h>
int r[10010];
double s[10010];
double PI=3.1415926535897;
int main()
{
int t,n,f;
double c;
scanf("%d",&t);
for(int i=1;i<=t;i++)
{
scanf("%d%d",&n,&f);
memset(r,0,sizeof(r));
c=0;
for(int j=1;j<=n;j++)
{
scanf("%d",&r[j]);
s[j]=PI*r[j]*r[j];
if(s[j]>c)
c=s[j];
}
//c是最大的面积;
double L=0,R=c,mid;
long long sum=0;
while(R-L>0.000001)
{
mid=(R+L)/2;
sum=0;
for(int j=1;j<=n;j++)
{
sum+=(int)(s[j]/mid);
}
if(sum>f)//不写等号时,输出了正确的结果
{
L=mid;
}
else {
R=mid;
}
}
printf("%.4f\n",mid);
}
return 0;
}
pie
最新推荐文章于 2022-09-02 13:40:40 发布