/*
本题思路;
每一次,要取最大的二个数,直到只剩下一个数,就输出;
可以排序;
可以用优队列;
可以用堆排序;冒似比较优化;
*/
#include <iostream>
#include <fstream>
#include <cstring>
#include <math.h>
#include <queue>
using namespace std;
priority_queue<double> que;
int main(){
int N;
double temp;
while(~scanf("%d", &N))
{
for(int i=1; i<=N; ++i){
scanf("%lf", &temp);
que.push(temp);
}
while(!que.empty()){
double a = que.top();
que.pop();
if(que.empty()){
printf("%.3lf\n", a);
break;
}
double b = que.top();
que.pop();
double c = 2 * sqrt(a * b);
que.push(c);
}
}
return 0;
}
POJ 1862(优先队列)
猜你喜欢
转载自blog.csdn.net/julicliy/article/details/79332301
今日推荐
周排行