#ATDPI. 抛硬币概率(Coins)

0

抛硬币概率(Coins)

抛硬币概率(Coins)

题目描述

N N を正の奇数とします。

N N 枚のコインがあります。 コインには 1, 2, …, N 1,\ 2,\ \ldots,\ N と番号が振られています。 各 i i (1 ≤ i ≤ N 1\ \leq\ i\ \leq\ N ) について、コイン i i を投げると、確率 pi p_i で表が出て、確率 1 − pi 1\ -\ p_i で裏が出ます。

太郎君は N N 枚のコインをすべて投げました。 このとき、表の個数が裏の個数を上回る確率を求めてください。

输入格式

入力は以下の形式で標準入力から与えられる。

N N p1 p_1 p2 p_2 … \ldots pN p_N

输出格式

表の個数が裏の個数を上回る確率を出力せよ。 絶対誤差が 10−9 10^{-9} 以下ならば正解となる。

样例输入 #1

3
0.30 0.60 0.80

样例输出 #1

0.612

样例输入 #2

1
0.50

样例输出 #2

0.5

样例输入 #3

5
0.42 0.01 0.42 0.99 0.42

样例输出 #3

0.3821815872

数据范围

制約

  • N N は奇数である。
  • 1 ≤ N ≤ 2999 1\ \leq\ N\ \leq\ 2999
  • pi p_i は実数であり、小数第 2 2 位まで与えられる。
  • 0 < pi < 1 0\ <\ p_i\ <\ 1

Sample Explanation 1

表の個数が裏の個数を上回るような各ケースの確率を計算すると、次のようになります。 - (コイン 1, コイン 2, コイン 3) = (表, 表, 表) (コイン\ 1,\ コイン\ 2,\ コイン\ 3)\ =\ (表,\ 表,\ 表) となる確率は、0.3 × 0.6 × 0.8 = 0.144 0.3\ ×\ 0.6\ ×\ 0.8\ =\ 0.144 である。 - (コイン 1, コイン 2, コイン 3) = (裏, 表, 表) (コイン\ 1,\ コイン\ 2,\ コイン\ 3)\ =\ (裏,\ 表,\ 表) となる確率は、0.7 × 0.6 × 0.8 = 0.336 0.7\ ×\ 0.6\ ×\ 0.8\ =\ 0.336 である。 - (コイン 1, コイン 2, コイン 3) = (表, 裏, 表) (コイン\ 1,\ コイン\ 2,\ コイン\ 3)\ =\ (表,\ 裏,\ 表) となる確率は、0.3 × 0.4 × 0.8 = 0.096 0.3\ ×\ 0.4\ ×\ 0.8\ =\ 0.096 である。 - (コイン 1, コイン 2, コイン 3) = (表, 表, 裏) (コイン\ 1,\ コイン\ 2,\ コイン\ 3)\ =\ (表,\ 表,\ 裏) となる確率は、0.3 × 0.6 × 0.2 = 0.036 0.3\ ×\ 0.6\ ×\ 0.2\ =\ 0.036 である。 よって、表の個数が裏の個数を上回る確率は、0.144 + 0.336 + 0.096 + 0.036 = 0.612 0.144\ +\ 0.336\ +\ 0.096\ +\ 0.036\ =\ 0.612 です。

Sample Explanation 2

例えば、0.500, 0.500000001, 0.499999999 などを出力しても正解となります。

知识点与难度

本题涉及的知识点从属于 GESP 8级,难度(CF Rating):1400。


测试点分布

Subtask 分值 测试点编号 说明
0 15 1~3 样例
1 25 4~9 小规模 N≤19 / 特殊: N=1
2 30 10~17 中等规模 N≤599
3 18~25 满规模 N≤2999 O(N^2) 概率 DP 测试

出处:原题链接