#include <bits/stdc++.h>
using namespace std;
int n,f;
//long double pi = acos(-1) ;
int x(long double num , long double arr[])
{
int fr=0;
if (num==0)
return 0;
for (int i = 0 ; i < n ; i++)
fr += (int) (arr[i] / num);
if (fr >=f)
return 1;
else
return 0;
}
long double can(long double arr[]){
long double s = 0 , e = arr[n-1] , mx= 0.0 ;
while (e - s >= 1e-6){
long double mid = (s + e ) / 2;
if ( x (mid , arr) == 1)
{
s = mid ;
}
else
e = mid ;
}
return s ;
}
int main()
{
int t;
scanf("%d",&t);
while (t--){
scanf("%d %d",&n,&f);
f++;
int arr1[n];
for (int i = 0 ; i < n ; i++)
scanf("%d" , &arr1[i]);
long double arr[n];
sort(arr1 , arr1 + n);
for (int i=0; i<n; i++)
arr[i] = arr1[i] * arr1[i] * acos(-1);
long double k = can(arr);
printf("%.4Lf\n",k);
}
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+Cgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKaW50IG4sZjsKLy9sb25nIGRvdWJsZSBwaSA9IGFjb3MoLTEpIDsKCmludCB4KGxvbmcgZG91YmxlIG51bSAsIGxvbmcgZG91YmxlIGFycltdKQp7CiAgICBpbnQgZnI9MDsKICAgIAogICAgaWYgKG51bT09MCkKICAgICAgICByZXR1cm4gMDsKICAgIAogICAgZm9yIChpbnQgaSA9IDAgOyBpIDwgbiA7IGkrKykKICAgICAgICBmciArPSAoaW50KSAoYXJyW2ldIC8gbnVtKTsKICAgIAogICAgaWYgKGZyID49ZikKICAgICAgICByZXR1cm4gMTsKICAgIAogICAgZWxzZQogICAgICAgIHJldHVybiAwOwp9Cgpsb25nIGRvdWJsZSBjYW4obG9uZyBkb3VibGUgYXJyW10pewoJCiAgICBsb25nIGRvdWJsZSBzID0gMCAsIGUgPSBhcnJbbi0xXSAsIG14PSAwLjAgOwogICAgCiAgICB3aGlsZSAoZSAtIHMgPj0gMWUtNil7CiAgICAgICAKICAgICAgICBsb25nIGRvdWJsZSBtaWQgPSAocyArIGUgKSAvIDI7CiAgICAgICAgaWYgKCB4IChtaWQgLCBhcnIpID09IDEpCiAgICAgICAgewogICAgICAgICAgICBzID0gbWlkIDsKICAgICAgICB9CiAgICAgICAgZWxzZQogICAgICAgICAgICBlID0gbWlkIDsKICAgIH0KICAgIAogICAgcmV0dXJuIHMgOwp9CgoKaW50IG1haW4oKQp7CiAgICBpbnQgdDsKCiAgICBzY2FuZigiJWQiLCZ0KTsKCiAgICB3aGlsZSAodC0tKXsKICAgICAgICBzY2FuZigiJWQgJWQiLCZuLCZmKTsKICAgICAgICBmKys7CiAgICAgICAgCiAgICAgICAgaW50IGFycjFbbl07CiAgICAgICAgZm9yIChpbnQgaSA9IDAgOyBpIDwgbiA7IGkrKykKICAgICAgICAgICAgc2NhbmYoIiVkIiAsICZhcnIxW2ldKTsKICAgICAgICAKICAgICAgICBsb25nIGRvdWJsZSBhcnJbbl07CiAgICAgICAgCiAgICAgICAgc29ydChhcnIxICwgYXJyMSArIG4pOwogICAgICAgIAogICAgICAgIGZvciAoaW50IGk9MDsgaTxuOyBpKyspCiAgICAgICAgCiAgICAgICAgICAgIGFycltpXSA9IGFycjFbaV0gKiBhcnIxW2ldICogYWNvcygtMSk7CiAgICAgICAgCiAgICAgICAgbG9uZyBkb3VibGUgayA9IGNhbihhcnIpOwogICAgICAgIAogICAgICAgIHByaW50ZigiJS40TGZcbiIsayk7CiAgICB9CiAgICAKICAgIHJldHVybiAwOwp9