#include <bits/stdc++.h>
using namespace std;
long double const pi = 3.141592653589793238462;
long long int const mod = 998244353;
long long int power(long long int a, long long int b) {
  long long int f = 1;
  while (b > 0) {
    if (b & 1) {
      f = f * a;
    }
    a = a * a;
    b = b / 2;
  }
  return f;
}
bool rev(pair<long long int, pair<long long int, long long int> > a,
         pair<long long int, pair<long long int, long long int> > b) {
  return a.first <= b.first;
}
long long int const N = 105;
int32_t main() {
  std::ios::sync_with_stdio(false);
  cin.tie(NULL);
  cout.tie(NULL);
  ;
  long long int n;
  cin >> n;
  long long int i, j, l;
  vector<long double> p(n);
  for (i = 0; i < n; i++) {
    cin >> p[i];
  }
  sort(p.begin(), p.end());
  long double ans = p[n - 1];
  long double z = 1.0 - p[n - 1];
  for (i = n - 2; i >= 0; i--) {
    long double x = ans * (1.0 - p[i]);
    long double y = p[i] * z;
    x = x + y;
    if (ans < x) {
      ans = x;
      z = z * (1.0 - p[i]);
    } else {
      break;
    }
  }
  cout << fixed << setprecision(20) << ans << endl;
  return 0;
}
