Andrey needs one more problem to conduct a programming contest. He has *n* friends who are always willing to help. He can ask some of them to come up with a contest problem. Andrey knows one value for each of his fiends — the probability that this friend will come up with a problem if Andrey asks him.

Help Andrey choose people to ask. As he needs only one problem, Andrey is going to be really upset if no one comes up with a problem or if he gets more than one problem from his friends. You need to choose such a set of people that maximizes the chances of Andrey not getting upset.
The first line contains a single integer *n* (1 ≤ *n* ≤ 100) — the number of Andrey's friends. The second line contains *n* real numbers *p*<sub class="lower-index">*i*</sub> (0.0 ≤ *p*<sub class="lower-index">*i*</sub> ≤ 1.0) — the probability that the *i*-th friend can come up with a problem. The probabilities are given with at most 6 digits after decimal point.
from sys import stdin,stdout
from collections import defaultdict,Counter
from bisect import bisect,bisect_left
import math
from itertools import permutations 

#stdin = open('input.txt','r')
I = stdin.readline






n = int(I())
arr = [float(x) for x in I().split()]

arr.sort(reverse = True)
ma = arr[0]
#print(ma)
for i in range(1,n):
    now = ma*(1-arr[i])
    #print(now)
    sec = 1
    for j in range(i):
        sec*=(1-arr[j])
   # print(sec*arr[i],sec,arr[i])
    now+=(arr[i]*sec)
    #print(ma,now)
    if(now>ma):
        ma = now
    else:
        break

print(ma)

