import sys sys.setrecursionlimit(200005) def II(): return int(sys.stdin.buffer.readline()) def LI(): return list(map(int, sys.stdin.buffer.readline().split())) popcnt = lambda x: bin(x).count("1") n = II() aa = LI() tot = sum(aa) P = {} finish = (1 << n)-1 # 初期化 for s in range(1 << n): t = finish ^ s x = sum(a for i, a in enumerate(aa) if s >> i & 1) y = tot-x P[s, t] = (x > y)*1 # DP for used in range(finish-1, -1, -1): # 2人の取ったカードを合わせたのがusedで、その部分集合をsとして回す s = used while 1: t = used ^ s val = 0 for i, ai in enumerate(aa): if used >> i & 1: continue si = s | 1 << i # p1を求める p1 = 1 if popcnt(used) == n-1: # 先手が最後の1枚を取った場合 p1 = P[si, t] else: for j, aj in enumerate(aa): if j == i: continue if used >> j & 1: continue p1 = min(p1, P[si, t | 1 << j]/aj+P[si, t]*(aj-1)/aj) # kを全探索する mn = 1 # iを固定したときのPの最小値 for k, ak in enumerate(aa): if used >> k & 1: continue tk = t | 1 << k mn = min(mn, (ak*p1+(ai-1)*P[s, tk])/(ai+ak-1)) val = max(val, mn) P[s, t] = val if s == 0: break s = (s-1) & used print(P[0, 0])