#dpi. [dp_i]Coins

[dp_i]Coins

题目描述

NN 是一个正奇数。

NN 枚硬币,编号为 1,2,ldots,N1, 2, \\ldots, N。对于每个 ii (1iN1 \leq i \leq N),当投掷 Coin ii 时,它以概率 pip_i 出现正面,以概率 1pi1 - p_i 出现反面。

Taro 投掷了所有的 NN 枚硬币。找出正面硬币数多于反面硬币数的概率。

约束条件

  • NN 是一个正奇数。
  • 1N29991 \leq N \leq 2999
  • pip_i 是一个实数,保留两位小数。
  • 0<pi<10 < p_i < 1

输入

输入将从标准输入读取,并具有以下格式:

NN p1p_1 p2p_2 ldots\\ldots pNp_N

输出

打印正面硬币数多于反面硬币数的概率。当绝对误差不大于 10910^{-9} 时,输出被认为是正确的。


示例输入1

3
0.30 0.60 0.80

示例输出1

0.612

正面硬币数多于反面硬币数的每种情况的概率如下:

  • (Coin1,Coin2,Coin3)=(正面,正面,正面)(Coin 1, Coin 2, Coin 3) = (正面, 正面, 正面) 的概率是 0.3×0.6×0.8=0.1440.3 × 0.6 × 0.8 = 0.144
  • (Coin1,Coin2,Coin3)=(反面,正面,正面)(Coin 1, Coin 2, Coin 3) = (反面, 正面, 正面) 的概率是 0.7×0.6×0.8=0.3360.7 × 0.6 × 0.8 = 0.336
  • (Coin1,Coin2,Coin3)=(正面,反面,正面)(Coin 1, Coin 2, Coin 3) = (正面, 反面, 正面) 的概率是 0.3×0.4×0.8=0.0960.3 × 0.4 × 0.8 = 0.096
  • (Coin1,Coin2,Coin3)=(正面,正面,反面)(Coin 1, Coin 2, Coin 3) = (正面, 正面, 反面) 的概率是 0.3×0.6×0.2=0.0360.3 × 0.6 × 0.2 = 0.036

因此,正面硬币数多于反面硬币数的概率是 0.144+0.336+0.096+0.036=0.6120.144 + 0.336 + 0.096 + 0.036 = 0.612


示例输入2

1
0.50

示例输出2

0.5

0.5000.5000000010.499999999 等输出也被认为是正确的。


示例输入3

5
0.42 0.01 0.42 0.99 0.42

示例输出3

0.3821815872