n = gets.to_i
dp = Array.new(n+1){Array.new(3001,0.0)}
dp[0][1500] = 1.0
a = gets.split.map(&:to_f)
n.times do |i|
	pr = a[i]
	dp[i+1][0] = dp[i][0] + dp[i][1]*(1-pr)
	dp[i+1][3000] += dp[i][3000] + dp[i][2999]*pr
	1.upto(2999) do |j|
		dp[i+1][j] = dp[i][j-1]*pr + dp[i][j+1]*(1-pr)
	end
end
p dp[n][1501..3000].reduce(:+)
