你正在進行一場鎖定(lockout)對決。規則很簡單:這是一場 1 對 1 的比賽,共有 $n$ 道題目,每道題目有不同的分數。只有第一位通過該題的參賽者能獲得分數,即使另一位參賽者只晚了 1 秒,也無法獲得任何分數。為了簡化起見,我們不考慮時間限制或提前獲勝的情況:比賽會持續進行,直到每道題目至少被其中一名參賽者解出為止。
你實力不錯,但……你的對手是 tourist。我知道這是一場災難。要贏過他很困難,但你希望能搶到一些分數來挽回顏面。如果你和 tourist 同時選擇同一道題目,他肯定會比你先解出來。但如果你選擇了不同的題目,機會就來了!你將能夠在 tourist 之前解出這道題目!但隨後他會進入「狂暴模式(berserk mode)」,並瞬間解出所有剩餘的題目。拿下一道題目總比什麼都沒有好,對吧?
讓我們將這個過程形式化。每次你和 tourist 都有一些尚未解出的題目可以選擇。如果沒有剩餘未解出的題目,遊戲結束,你獲得 0 分。否則,你和 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 會採取最佳策略來最小化你的期望得分,這有時意味著他會允許你贏得比賽。