Esito del lancio di monete con probabilità diverse

Vi vengono date n monete, dove la moneta i-esima ha probabilità p_i di atterrare con il lato testa rivolto verso l’alto quando viene lanciata. Il vostro compito è calcolare la probabilità di ottenere più teste che croci dopo aver lanciato tutte le n monete.

Input

La prima riga contiene un singolo intero n (1 ≤ n ≤ 2000), che indica il numero di monete.
La seconda riga contiene n numeri reali p_i con due cifre decimali (0 ≤ p_i ≤ 1), che indicano la probabilità della moneta i-esima di mostrare testa.

Output

Il programma deve stampare un singolo numero in virgola mobile che rappresenti la probabilità di ottenere più teste che croci dopo aver lanciato tutte le n monete.

Spiegazione

Input
Output
3 0.3 0.6 0.4
0.396
1 0.5
0.5
5 0.42 0.01 0.42 0.99 0.42
0.38218

Constraints

Time limit: 5 seconds

Memory limit: 512 MB

Output limit: 1 MB

To check your solution you need to sign in
Sign in to continue