A - 奇怪的玩意

我们的化学生物学家发明了一种新的叫stripies非常神奇的生命。该stripies是透明的无定形变形虫似的生物,生活在果冻状的营养培养基平板菌落。大部分的时间stripies在移动。当他们两个碰撞,会有新stripie生成,而旧的不见了。经过长期研究,他们发现新stripies的体重不等于消失的stripies的体重,而是:如果一个质量为m1和m2的stripies相撞,生成的stripies体重是2*sqrt(m1*m2) 现在,科学家们想知道,如果stripies两两碰撞至只剩一个,则这一个的最小质量是多少? 

Input

第一行输入 N (1 <= N <= 100) :stripies的数量. 接下来的 N 行是stripies的质量(1<=m<=10000)

Output

输出最小质量。保留至小数点后三位

Sample Input

3
72
30
50

Sample Output

120.000

Hint

样例解释:
72与50合并,产生120,120与30合并,产生120

解法:
从大的开始融合
 1 #include <iostream>
 2 #include <set>
 3 #include <sstream>
 4 #include <queue>
 5 #include <math.h>
 6 #include <algorithm>
 7 #include <stdio.h>
 8 using namespace std;
 9 
10 const int MAX = 100000 + 1000;
11 
12 
13 int main()
14 {
15     double a[120];
16     int n;
17     cin>>n;
18     for(int i =0;i<n;i++)
19         cin>>a[i];
20     sort(a,a+n);
21     
22     for(int i = n -1;i>0;i--)
23     {
24         a[i-1] = 2*sqrt(a[i]*a[i-1]);
25     }
26     
27     printf("%.3lf\n",a[0]);
28     
29     return 0;
30 }

 

posted @ 2017-07-23 14:20  山杉三  阅读(107)  评论(0编辑  收藏  举报