N = gets.to_i
arr = gets.split.map(&:to_f)
nn = (N + 1) / 2
# dp = Array.new(N + 1){Array.new(nn + 1, 0)}
dp = Array.new(nn + 1, 0)
dp[0] = 1
N.times do |i|
  (nn - 1).downto(0) do |j|
    dp[j+1] += (dp[j] - dp[j+1]) * arr[i]
  end
end
# p dp
puts dp[nn]