//</></>//</> </>//</> </>//</> </>//</> </>//</> </>//</> </>//</> </>//</> </>//</></>//</> </>//</> </>//</> </>//</></>//</> </>//</> </>//</> </>//</></>//</> </>//</> </>//</> </>//</></>//</> </>//</> </>//</> </>//</></>//</> </>//</> </>//</> </>//</></>//</> </>//</> </>//</> </>//</></>//</> </>//</> </>//</> </>//</></>//</> </>//</> </>//</> </>//</></>//</> </>//</> </>//</> </>//</></>//</> </>//</> </>//</> </>//</></>//</> </>//</> </>//</> </>//</></>//</> </>//</> </>//</> </>//</></>//</> </>//</> </>//</> </>//</></>//</> </>//</> </>//</> </>//</></>//</> </>//</> </>//</> </>//</></>//</> </>//</> </>//</> </>//</></>//</> </>//</> </>//</> </>//</></>//</> </>//</> </>//</> </>//</></>//</> </>//</> </>//</> </>//</></>//</> </>//</> </>//</> </>//</></>//</> </>//</> </>//</> </>//</></>//</> </>//</> </>//</> </>//</></>//</> </>//</> </>//</> </>//</></>//</> </>//</> </>//</> </>//</></>//</> </>//</> </>//</> </>//</></>//</> </>//</> </>//</> </>//</></>//</> </>//</> </>//</> </>//</></>//</> </>//</> </>//</> </>//</></>//</> </>//</> </>//</> </>//</></>//</> </>//</> </>//</> </>//</></>//</> </>//</> </>//</> </>//</></>//</> </>//</> </>//</> </>//</></>//</> </>//</> </>//</> </>//</></>//</> </>//</> </>//</> </>//</></>//</> </>//</> </>//</> </>//</></>//</> </>//</> </>//</> </>//</></>//</> </>//</> </>//</> </>//</></>//</> </>//</> </>//</> </>//</></>//</> </>//</> </>//</> </>//</></>//</> </>//</> </>//</> </>//</></>//</> </>//</> </>//</> </>//</></>//</> </>//</> </>//</> </>//</></>//</> </>//</> </>//</> </>//</></>//</> </>//</> </>//</> </>//</></>//</> </>//</> </>//</> </>//</></>//</> </>//</> </>//</> </>//</></>//</> </>//</> </>//</> </>//</></>//</> </>//</> </>//</> </>//</></>//</> </>//</> </>//</> </>//</></>//</> </>//</> </>//</> </>//</></>//</> </>//</> </>//</> </>//</></>//</> </>//</> </>//</> </>//</></>//</> </>//</> </>//</> </>//</></>//</> </>//</> </>//</> </>//</></>//</> </>//</> </>//</> </>//</></>//</> </>//</> </>//</> </>//</></>//</> </>//</> </>//</> </>//</></>//</> </>//</> </>//</> </>//</></>//</> </>//</> </>//</> </>//</></>//</> </>//</> </>//</> </>//</></>//</> </>//</> </>//</> </>//</></>//</> </>//</> </>//</> </>//</></>//</> </>//</> </>//</> </>//</></>//</> </>//</> </>//</> </>//</></>//</> </>//</> </>//</> </>//</></>//</> </>//</> </>//</> </>//</></>//</> </>//</> </>//</> </>//</></>//</> </>//</> </>//</> </>//</></>//</> </>//</> </>//</> </>//</></>//</> </>//</> </>//</> </>//</></>//</> </>//</> </>//</> </>//</></>//</> </>//</> </>//</> </>//</></>//</> </>//</> </>//</> </>//</></>//</> </>//</> </>//</> </>//</></>//</> </>//</> </>//</> </>//</></>//</> </>//</> </>//</> </>//</> </>//</> </>//</> </>//</> </>//</> </>//</> </>//</> </>//</> </>//</> </>//</> </>//</> </>//</> </>//</> </>//</> </>//</> </>//</> </>//</> </>//</> </>//</> </>//</> </>//</> </>//</> </>//</> </>//</> </>//</> </>//</> </>//</> </>//</> </>//</> </>//</> </>//</> </>//</> </>//</> </>//</> </>//</> </>//</> </>//</> </>//</> </>//</> </>//</> </>//</> </>//</> </>//</> </>//</> </>//</> </>//</> </>//</> </>//</> </>//</> </>//</> </>//</> </>//</> </>//</> </>//</> </>//</> </>//</> </>//</> </>//</> </>//</> </>//</> </>//</> </>//</> </>//</> </>//</> </>//</> </>//</> </>//</> </>//</> </>//</> </>//</> </>//</> </>//</> </>//</> </>//</> </>//</> </>//</> </>//</> </>//</> </>//</> </>//</> </>//</> </>//</> </>//</> </>//</> </>//</> </>//</> </>//</> </>//</> </>//</> </>//</> </>//</> </>//</> <
#include<bits/stdc++.h>
/* \/ Jennifer S. Lawrence\/ */
#include<ext/pb_ds/assoc_container.hpp>
#include<ext/pb_ds/tree_policy.hpp>

using namespace std;
using namespace __gnu_pbds;


#define ff          first
#define ss          second
#define int         long long 
#define pb          push_back
#define mp          make_pair
#define pii         pair<int,int>
#define vi          vector <int>
#define mii         map <int,int>
#define mxhi        priority_queue<int>
#define mnhi        priority_queue<int,vi,greater<int> >
#define mod         1000000007
#define setbits(x)  __builtin_popcountll(x)
#define zrobits(x)  __builtin_ctzll(x)   //no of zero bits befor the first set bits
#define inf         1e18
#define ps(x,y)     fixed<<setprecision(y)<<x
#define w(x)        int x; cin>>x; while(x--)
#define float        double
vector<int> pn;

void SieveOfEratosthenes(int n) 
{   bool prime[n+1]; 
    memset(prime, true, sizeof(prime)); 
  
    for (int p=2; p*p<=n; p++) 
    { 
        
        if (prime[p] == true) 
        { 
         
        for (int i=p*p; i<=n; i += p) 
                prime[i] = false; 
        } 
    } 
    for (int p=2; p<=n; p++) 
       if (prime[p]) 
         pn.pb(p);
} 
int fp(int a,int n)
{
	int ans=1;
	while(n>0)
	{
		bool lb=n&1;
		if(lb)
			ans=(ans*a);
		a=(a*a);
		n=n>>1;
	}
	return ans;
}
typedef tree<int,null_type,less<int>,rb_tree_tag,
        tree_order_statistics_node_update>
        PBDS;
void i_n()
{
    ios_base::sync_with_stdio(false);
	cin.tie(NULL);
	#ifndef ONLINE_JUDGE
	        freopen("input.txt","r",stdin);
	        freopen("output.txt","w",stdout);
	#endif
} 
float dp[3000][3000];
float pro(int n,float* p,int i,int noh,int nott)
{
	if(i>n)
		return 1.0;
	float ans=0;
	if(dp[i][noh]!=-1)
		return dp[i][noh];
	if(noh+(n-i)>nott+1)
	{
		ans=1.0;
		ans=(1.0-p[i])*pro(n,p,i+1,noh,nott+1);
	}
	float ans1=1.0;
   ans1=p[i]*pro(n,p,i+1,noh+1,nott);
   return dp[i][noh]=ans+ans1;
}
void solve()
{
	int n;
	cin>>n;
	float p[n+1];
	for (int i = 1; i < n+1; ++i)
	{
		/* code */
		cin>>p[i];
	}
	for (int i = 0; i < 3000; ++i)
	{
		/* code */
		for (int j = 0; j < 3000; ++j)
		{
			/* code */
			dp[i][j]=-1;
		}
	}
	cout<<ps(pro(n,p,1,0,0),10);
	
}
main()
{
	i_n();
	solve();
	

}


Measured memory_bytes: 74380