n = gets.to_s.to_i
ps = gets.to_s.split.map{ |v| v.to_f }

dp = Array.new(n+1) { Array.new(n+1, 0)}
dp[0][0] = 1.0

n.times do |i|
  0.upto(i+1) do |j|
    dp[i+1][j] = dp[i][j-1] * ps[i] + dp[i][j] * (1 - ps[i])
  end
end

ans = 0
dp[n].each_with_index do |pi, i|
  next if i <= n / 2
  ans += pi
end

puts ans