N = gets.to_i
P = gets.split.map(&:to_f)

#N = 2999
#P = N.times.map{0.5}

dp = Array.new(N, 0.0)
dp[0] = 1
N.times do |i|
  i.downto(0) do |j|
    next if j > N/2
    if j + 1 <= N/2
      dp[j + 1] = (1 - P[i]) * dp[j] + dp[j + 1]
    end
    dp[j] = P[i] * dp[j]
  end
end
p dp.inject(:+)