二分
// Submission#: 2721381
// The source code is licensed under Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License
// URI: http://creativecommons.org/licenses/by-nc-sa/3.0/
// All Copyright reserved by Informatic Lab of Sun Yat-sen University
#include <cstdio>
#include <algorithm>
#include <cmath>
using namespace std;
const double pi = acos(-1.0);
const int maxn = 10005;
double a[maxn];
int n,f;
bool ok(double area)
{
int sum=0;
for(int i=0;i<n;i++)
{
sum += floor(a[i] / area);
}
return sum>=f+1;
}
int main()
{
int t;
scanf("%d\n",&t);
while(t--)
{
scanf("%d%d",&n,&f);
double m=-1;
for(int i=0;i<n;i++)
{
int rad;
scanf("%d",&rad);
a[i]=pi*rad*rad;
m=max(m,a[i]);
}
double l,r;
l=0;
r=m;
while(r-l>1e-6)
{
double mid=(l+r)/2;
if(ok(mid))
{
l=mid;
}
else
{
r=mid;
}
}
printf("%.4lf\n",l);
}
return 0;
}