没什么好说的。主要就是题意别读错,人家爱干净,每个人只能分一个pie里面的一个piece,不能多个pie多个piece。
读懂题意这题就完全水了。1A。
/*
Pro: 0
Sol:
date:
*/
#include <iostream>
#include <cstdio>
#include <algorithm>
#include <cstring>
#include <cmath>
#include <queue>
#include <set>
#include <vector>
#define eps 1e-7
const double pi = acos(-1);
using namespace std;
int n,f,t;
double a[10010],area;
bool go(double indx){
int num = 0;
for(int i = 0; i < n; i ++){
if(a[i] < indx) continue;
else num += (int) (a[i] / indx);
}
if(num >= f) return true;
else return false;
}
int main(){
scanf("%d",&t);
while(t --){
area = 0.0;
scanf("%d%d",&n,&f);
for(int i = 0; i < n; i++)
scanf("%lf", a + i), a[i] = a[i] * a[i] * pi, area += a[i];
double low = 0.0, high = area, mid; f ++;
while(low + eps <= high){
mid = (low + high) / 2.0;
if(go(mid)) low = mid + eps;
else high = mid - eps;
}
printf("%.4f\n",low);
}
return 0;
}