#include<iostream>#include<stdio.h>#include<math.h>using namespace std;const double PI=acos(-1.0);const double eps=0.00001; int main(){int cs;scanf("%d",&cs);int n,k;while(cs--){scanf("%d%d",&n,&k);double left=0.0,right=0.0;int i;double arr[10001];for(i=0;i<n;i++){scanf("%lf",&arr[i]);arr[i]=arr[i]*arr[i];right+=arr[i];}++k;right=right/k;double mid;int ans;while((right-left)>eps){ans=0;mid=(right+left)/2;for(i=0;i<n;i++){if(mid<arr[i])ans+=int(arr[i]/mid);}if(ans>=k)left=mid+eps;elseright=mid-eps;}printf("%.4lf\n",(right+left)/2*PI);}return 0;}
1 回答
慕容森
TA贡献1853条经验 获得超18个赞
你的文件名是什么后缀,这个和编译器有关
gcc为GNU Compiler Collection的缩写,可以编译C和C++源代码等,它是GNU开发的C和C++以及其他很多种语言 的编译器
g++也能编译C源代码,只不过把会把它当成C++源代码,后缀为.c的,gcc把它当作是C程序,而g++当作是c++程序;后缀为.cpp的,两者都会认为是c++程序,注意,虽然c++是c的超集,但是两者对语法的要求是有区别的
- 1 回答
- 0 关注
- 117 浏览
添加回答
举报
0/150
提交
取消