#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 關注
- 169 瀏覽
添加回答
舉報
0/150
提交
取消