#include<iostream>#include<istream>#include<sstream>#include<vector>#include<stack>#include<list>#include<map>#include<set>#include<deque>#include<queue>#include<cstring>#include<unordered_map>#include<unordered_set>#include<algorithm>#include<numeric>#include<chrono>#include<ctime>#include<cmath>#include<cctype>#include<string>#include<cstdio>#include<iomanip>#include<thread>#include<mutex>#include<condition_variable>#include<functional>#include<iterator>usingnamespace std;constint maxn =1e4+7;constdouble PI =acos(-1.0);int n, f;double input[maxn];boolok(double mid){int sum =0;for(int i =0; i < n; i++)
sum +=floor(input[i]/ mid);return sum >= f +1;}intmain(){int t;
cin >> t;while(t--){
cin >> n >> f;double l =0, r =0,t;for(int i =0; i < n; i++){
cin >> t;
input[i]= PI * t * t;
r =max(r, input[i]);}while(r - l >1e-5){double mid =(l + r)/2;if(ok(mid)){
l = mid;}else r = mid;}
cout << fixed <<setprecision(4)<< l << endl;}return0;}