#include <iostream>
#include <algorithm>
#include <queue>
#include <cstdio>
#include <cmath>
using namespace std;
const int M =11500;
priority_queue<double> q;
int n;
int main()
{
cin>>n;
for(int i=0;i<n;i++)
{
double x;
cin>>x;
q.push(x);
}
double x,y,z,ans=-1;
while(!q.empty())
{
x=q.top(); q.pop();
if(q.empty())
{
ans=x; // 最大一只由 X,Y合成 则X ,Y应该为 Xmax,Ymax,所以每次用两个当前最大合成一只
break;
}
y=q.top(); q.pop();
z=2*sqrt(x*y);
q.push(z);
}
printf("%.3lf\n",ans);
return 0;
}