#include <iostream>
#include <math.h>
using namespace std;
#define PI acos(-1.0)
#define eps 1e-5
const int N = 1e4 + 100;
double a[N], l, r, mid;
int n, m, T;
bool check(double x)
{
int cnt = 0;
for (int i = 0; i < n; i++)
cnt += floor(a[i] / x);
return cnt > m; //m+1 朋友和自己
}
int main()
{
ios::sync_with_stdio(false);
cin >> T;
while (T--)
{
cin >> n >> m;
r = 0;
for (int i = 0; i < n; i++)
{
cin >> a[i];
a[i] *= a[i] * PI;//面积s=pi*r*r
if (a[i] > r)//右边界
r = a[i];
}
l = 0;
while (r - l > eps) //如果是while(l<r)会死循环 注意一下 一般都这么写
{
mid = (l + r) / 2;
if (check(mid)) //如果可以分 左边界向右
l = mid;
else
r = mid;
}
printf("%.4f\n", l);
}
system("pause");
return 0;
}
06-03
755
04-20
92
08-24
366
10-18
10-18