#include <stdio.h>
#include <algorithm>
#define PI 3.14159265358979323846//精度要求很高
using namespace std;
long long s = 1000000;
long long area[10005];
int n,f,r,i;
bool judge(long long mid){
long long p = 0;
for(i = 0;i< n;i++){
p += area[i]/mid;
}
return p>= f;
}
int main(){
int t;
scanf("%d",&t);
while(t--){
scanf("%d%d",&n,&f);
f++;
long long high = 0,low = 1, res = 0, mid;
for(i = 0;i < n;i++){
scanf("%d",&r);
area[i] =r * r * PI * s;
if(area[i]> high)
high = area[i];
}
while(low <= high){
mid =(high + low) / 2;
if(judge(mid)){
low = mid + 1;
res = mid;
}
else
high = mid - 1;
}
printf("%.4lf\n",double(res)/s);
}
return 0;
}
hoj2651(二分)
最新推荐文章于 2019-04-24 23:22:24 发布