poj Pie

http://poj.org/problem?id=3122

 1 #include<cstdio>

 2 #include<cstring>

 3 #include<cmath>

 4 #define maxn 10010

 5 #include<algorithm>

 6 using namespace std;

 7 

 8 const double pi=acos(-1.0);

 9 const double eps=1e-8;

10 double r[maxn];

11 int n,f;

12 

13 int main()

14 {

15     int t;

16     scanf("%d",&t);

17     while(t--){

18         double max1=0;

19         scanf("%d%d",&n,&f);

20         f++;

21         for(int i=0; i<n; i++)

22         {

23             scanf("%lf",&r[i]);

24             r[i]*=r[i];

25             if(max1<r[i])

26             max1=r[i];

27         }

28         double low=0,high=max1,mid;

29         while(high-low>eps)

30         {

31             mid=(high+low)/2;

32             int ans=0;

33             for(int i=0; i<n; i++)

34                 ans+=(int)(r[i]/mid);

35             if(ans<f)

36                 high=mid;

37             else

38                 low=mid;

39         }

40         printf("%.4lf\n",pi*mid);

41     }

42     return 0;

43 }
View Code

 

你可能感兴趣的:(poj)