#include <bits/stdc++.h>
using namespace std;
struct T {
  int a, b, s;
};
double ar[105];
int main() {
  int i, j, k, l, t, r, n, s, m;
  double a, b, c, u, v;
  scanf("%d", &n);
  for (i = 0; i < n; i++) {
    scanf("%lf", &ar[i]);
  }
  sort(ar, ar + n);
  double ans = ar[n - 1];
  for (i = n - 2; i >= 0; i--) {
    b = 0.000;
    for (j = i; j < n; j++) {
      a = ar[j];
      for (k = i; k < n; k++) {
        if (j != k) {
          a = a * (1 - ar[k]);
        }
      }
      b = b + a;
    }
    ans = max(ans, b);
  }
  printf("%.12lf\n", ans);
  return 0;
}
