#include <iostream>
#include <vector>

using namespace std;

double dp[3000][3001];
double p[3001];
int main() {
		int N;
		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 f = 0; f <= i; f++) {
						dp[i][f] = dp[i - 1][f - 1] * p[i] + dp[i - 1][f] * (1 - p[i]);
				}
		}
		double res = 0;
		for (int i = N / 2 + 1; i <= N; i++) {
			res += dp[N][i];
		}
		cout << res << endl;
}