#include<iostream>
using namespace std;

int n,t;
double dp[3007][3007],a[3007],ans;

int main(){
	scanf("%d",&n);
	for(int i=1;i<=n;i++){
		scanf("%lf",&a[i]);
	}
	dp[0][0]=1;
	dp[0][1]=0; 
	for(int i=1;i<=n;i++){
		for(int j=0;j<=n;j++){
			if(j==0){
				dp[i][j]=dp[i-1][j]*(1-a[i]);
			}
			else{
				dp[i][j]=dp[i-1][j]*(1-a[i])+dp[i-1][j-1]*(a[i]);	
			}
		}
	}
	t=n/2+1;
	for(int i=t;i<=n;i++){
		ans+=dp[n][i];
	}
	printf("%.10f\n",ans);
}