二分答案……
Program pie;
const
lef=0.00001;
var
t,n,f,i,j:longint;
r:array[1..10000] of longint;
s:array[1..10000] of double;
maxs:double;
procedure sort(l,r:double);
var
m:real;
i,j,tot:longint;
begin
m:=(l+r)/2;
tot:=0;
for i:=1 to n do inc(tot,trunc(s[i]/m));
if tot>=f then
begin
if r-l<lef then writeln(r:4:4)
else sort(m,r);
end
else sort(l,m);
end;
begin
read(t);
while (t>0) do
begin
read(n,f);
inc(f);
for i:=1 to n do
begin
read(r[i]);
s[i]:=sqr(r[i])*pi;
end;
maxs:=s[1];
for i:=2 to n do
if maxs<s[i] then maxs:=s[i];
sort(0,maxs);
dec(t);
end;
end.