//poj3122 Pie
//binary sreach
#include <stdio.h>
#include <math.h>
const double PI = acos(-1.0);
const int maxn = 10000 + 5;
double a[maxn];
int n, f;
const double eps = 1e-5;
bool check(double x)
{
int cnt = 0;
for(int i=0; i<n; ++i)
{
cnt += floor(a[i]/x);
}
return cnt >= f+1;
}
int main()
{
int T, i, x;
scanf("%d",&T);
while(T--)
{
scanf("%d%d",&n,&f);
double maxv = -1;
for(i=0; i<n; ++i)
{
scanf("%d",&x);
a[i] = PI*x*x;
if(maxv < a[i]) maxv = a[i];
}
double l = 0, r = maxv, m;
while(r-l > eps)
//for(int i=0; i<100; ++i) ,这样写也能保证精度
{
m = (l + r)/2;
if( check(m) ) l = m;
else r = m;
}
printf("%.4f\n",m);
}
return 0;
}
Ly9wb2ozMTIyIFBpZSAKLy9iaW5hcnkgc3JlYWNoCgojaW5jbHVkZSA8c3RkaW8uaD4KI2luY2x1ZGUgPG1hdGguaD4KCmNvbnN0IGRvdWJsZSBQSSA9IGFjb3MoLTEuMCk7CmNvbnN0IGludCBtYXhuID0gMTAwMDAgKyA1Owpkb3VibGUgYVttYXhuXTsKaW50IG4sIGY7CmNvbnN0IGRvdWJsZSBlcHMgPSAxZS01Owpib29sIGNoZWNrKGRvdWJsZSB4KQp7CiAgICBpbnQgY250ID0gMDsKICAgIGZvcihpbnQgaT0wOyBpPG47ICsraSkKICAgIHsKICAgICAgY250ICs9IGZsb29yKGFbaV0veCk7CiAgICB9CiAgICByZXR1cm4gIGNudCA+PSBmKzE7Cn0KCmludCBtYWluKCkKewogICAgaW50IFQsIGksIHg7CiAgICBzY2FuZigiJWQiLCZUKTsKICAgIHdoaWxlKFQtLSkKICAgIHsKICAgICAgICBzY2FuZigiJWQlZCIsJm4sJmYpOwogICAgICAgIGRvdWJsZSBtYXh2ID0gLTE7CiAgICAgICAgZm9yKGk9MDsgaTxuOyArK2kpCiAgICAgICAgewogICAgICAgICAgICBzY2FuZigiJWQiLCZ4KTsKICAgICAgICAgICAgYVtpXSA9IFBJKngqeDsKICAgICAgICAgICAgaWYobWF4diA8IGFbaV0pIG1heHYgPSBhW2ldOwogICAgICAgIH0KICAgICAgICBkb3VibGUgbCA9IDAsIHIgPSBtYXh2LCBtOwogICAgICAgIHdoaWxlKHItbCA+IGVwcykgCiAgICAgICAgLy9mb3IoaW50IGk9MDsgaTwxMDA7ICsraSkg77yM6L+Z5qC35YaZ5Lmf6IO95L+d6K+B57K+5bqmCiAgICAgICAgewogICAgICAgICAgICBtID0gKGwgKyByKS8yOwogICAgICAgICAgICBpZiggY2hlY2sobSkgKSBsID0gbTsKICAgICAgICAgICAgZWxzZSByID0gbTsKICAgICAgICB9CiAgICAgICAgcHJpbnRmKCIlLjRmXG4iLG0pOwogICAgfQogICAgcmV0dXJuIDA7Cn0=