

function Main(input) {
  input = input.split("\n");
  var N = parseInt(input[0]);
  input.shift();
  var p = input[0].split(" ").map(i => Number(i));
  var map=new Array(N+1);
  for(var i=0;i<N+1;i++){
    var tmp=new Array(N+1).fill(0);
    map[i]=tmp;
  }
  map[0][0]=1;
  for(var i=1;i<N+1;i++){
    for(var j=0;j<=i;j++){
      if(j==0){
        map[i][j]=map[i-1][j]*(1-p[i-1]);
      }else{
        map[i][j]=map[i-1][j]*(1-p[i-1])+map[i-1][j-1]*p[i-1];
      }

    }
  }
  var ans=0;
  for(var i=Math.ceil(N/2);i<N+1;i++){
    ans+=map[N][i];
  }
  console.log('%s', ans);
  return ans;
}
// "実行する"ボタンを押した時に実行される関数 (デバッグ用)
function debug(n){
  var input = document.getElementById("input"+n).value;
  var ans=Main(input);
  var result="WA";
  if(ans==document.getElementById("output"+n).value.split("\n")[0]){
    result="AC";
  }
  document.getElementById("result"+n).innerHTML=result;
}
Main(require("fs").readFileSync("/dev/stdin", "utf8"));