#include <bits/stdc++.h>
using namespace std;
int n;
long double p[3005];
long double dp[3005][3005];
main() {
ios_base::sync_with_stdio(false);
cin.tie(0); cout.tie(0);
freopen("TEST.inp", "r", stdin);
freopen("TEST.out", "w", stdout);
cin >> n;
for (int i = 1; i <= n; i++) cin >> p[i];
dp[1][0] = 1 - p[1];
dp[1][1] = p[1];
for (int i = 2; i <= n; i++) {
for (int j = 0; j <= i; j++) {
dp[i][j] += dp[i - 1][j - 1] * p[i] + dp[i - 1][j] * (1 - p[i]);
}
}
long double ans = 0;
for (int i = n / 2 + 1; i <= n; i++) ans += dp[n][i];
cout << fixed << setprecision(9) << ans << '\n';
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CmludCBuOwpsb25nIGRvdWJsZSBwWzMwMDVdOwpsb25nIGRvdWJsZSBkcFszMDA1XVszMDA1XTsKCm1haW4oKSB7CiAgICBpb3NfYmFzZTo6c3luY193aXRoX3N0ZGlvKGZhbHNlKTsKICAgIGNpbi50aWUoMCk7IGNvdXQudGllKDApOwogICAgZnJlb3BlbigiVEVTVC5pbnAiLCAiciIsIHN0ZGluKTsKICAgIGZyZW9wZW4oIlRFU1Qub3V0IiwgInciLCBzdGRvdXQpOwogICAgY2luID4+IG47CiAgICBmb3IgKGludCBpID0gMTsgaSA8PSBuOyBpKyspIGNpbiA+PiBwW2ldOwoKICAgIGRwWzFdWzBdID0gMSAtIHBbMV07CiAgICBkcFsxXVsxXSA9IHBbMV07CiAgICBmb3IgKGludCBpID0gMjsgaSA8PSBuOyBpKyspIHsKICAgICAgICBmb3IgKGludCBqID0gMDsgaiA8PSBpOyBqKyspIHsKICAgICAgICAgICAgZHBbaV1bal0gKz0gZHBbaSAtIDFdW2ogLSAxXSAqIHBbaV0gKyBkcFtpIC0gMV1bal0gKiAoMSAtIHBbaV0pOwogICAgICAgIH0KICAgIH0KICAgIGxvbmcgZG91YmxlIGFucyA9IDA7CiAgICBmb3IgKGludCBpID0gbiAvIDIgKyAxOyBpIDw9IG47IGkrKykgYW5zICs9IGRwW25dW2ldOwoKICAgIGNvdXQgPDwgZml4ZWQgPDwgc2V0cHJlY2lzaW9uKDkpIDw8IGFucyA8PCAnXG4nOwoKICAgIHJldHVybiAwOwp9Cg==