你正參加一場 lockout 對賽。規則好簡單:呢個係一對一比賽,有 $n$ 道題目,每題都有唔同分值。只有第一個令某題獲得通過嘅參賽者先可以得到嗰題嘅分數;即使另一個人只係遲咗一秒,都得唔到任何分數。為咗簡化,我哋唔設時間限制,亦唔會提早判定勝負:比賽會一直進行,直到每道題目都至少畀其中一位參賽者解出。
你幾叻,但……你嘅對手係 tourist。我知,真係一場災難。要贏好難,但你希望搶到啲分,挽回面子。如果你同 tourist 做同一道題,佢肯定會快過你。但如果你揀咗唔同嘅題目,機會就嚟啦!你可以喺 tourist 之前解出嗰題!不過之後佢就會進入狂暴模式,即刻解晒所有剩低嘅題目。解到一題總好過一題都冇,係咪?
我哋將過程形式化少少。每次,你同 tourist 都可以喺尚未解出嘅題目之中作選擇。如果冇未解出嘅題目,遊戲就結束,你得到 $0$ 分。否則,你同 tourist 都要揀一道題嚟做,而且唔知道對方揀咗邊題。如果你哋揀咗同一道題,tourist 會先過你解出佢,之後我哋返去相同嘅初始狀態,但剩低嘅題目少咗。否則,你會得到自己所揀題目嘅分數,但遊戲會即刻結束,因為 tourist 會瞬間解晒所有剩低嘅題目。
你想最大化自己獲得嘅分數,而 tourist 想最小化佢。如果你同 tourist 都採取最優策略,遊戲結果嘅期望值係幾多?
輸入
第一行包含一個整數 $n$($1\le n\le 22$),表示題目數目。
第二行包含 $n$ 個整數 $a_i$($1\le a_i\le 10^9$),表示每道題目嘅分值。
輸出
輸出一個數,表示你嘅期望得分。
如果答案嘅絕對或者相對誤差唔超過 $10^{-6}$,就會被視為正確。
形式化噉講,設你嘅答案係 $a$,評審答案係 $b$。你嘅答案獲得通過,若且唯若 $\frac{|a-b|}{\max(1,|b|)}\le 10^{-6}$。
範例
輸入 1
2 6 7
輸出 1
3.2307692307692
輸入 2
3 1 1 1
輸出 2
0.8333333333333
輸入 3
11 1 2 3 4 5 6 7 8 9 10 11
輸出 3
9.4422713866103
說明
留意,喺第一個範例入面,如果 tourist 一直揀第二題,佢一定可以贏得比賽;針對呢個策略,你可以一直揀第一題,得到 $6$ 分。但 tourist 會用最優策略去最小化你嘅期望得分,有時呢個策略可能代表容許你贏得比賽。