n, *p = $stdin.read.split.map(&:to_f)
n = n.to_i
dp = Array.new(n+1).map { Array.new(n+2, 0.0) }
p.unshift(nil)
dp[1][0], dp[1][1] = 1-p[1], p[1]
(2..n).each do |i|
  (0..i).each do |f|
    dp[i][f] = dp[i-1][f-1] * p[i] + dp[i-1][f] * (1-p[i])
  end
end
puts (n/2+1..n).map{ |i| dp[n][i] }.inject(:+)
