有 $n$ 个葫芦娃,第 $i$ 个葫芦娃的战斗力是 $p_i$,在第 $i$ 天早上出生。保证所有 $p_i$ 的总和是 $1$。
第 $i$ 天晚上,已经出生的葫芦娃可以选择积攒实力(等明天)或者所有人出发去救爷爷,如果这些葫芦娃的实力总和为 $P$,那么有 $P$ 的概率救出爷爷,$1-P$ 的概率失败,如果失败了,那么这轮参与援救的葫芦娃都会被妖精抓走,之后无法参与救援。
但是,妖精用俄罗斯轮盘的方式决定爷爷的生死。也就是说,妖精会首先随机在 $1$ 到 $n$ 里均匀生成一个正整数 $x$,然后在第 $x$ 天中午杀死爷爷。如果爷爷已经被杀死了,那么葫芦娃的救援活动自然失败。葫芦娃无法知道 $x$。
请你帮忙计算,葫芦娃应该按照什么策略展开救援,最大化爷爷获救的概率。
输入格式
第一行输入一个正整数 $n$。
接下来一行输入 $n$ 个小数 $p_i$。
输出格式
输出一个小数,表示最优策略下爷爷获救的概率。你的答案只要误差不超过 $10^{-6}$ 就算对。
样例数据
样例 1 输入
1 1
样例 1 输出
0
样例 2 输入
7 0.5 0.5 0 0 0 0 0
样例 2 输出
0.71428571428571430157
样例 2 解释
最优解是第二天两个人一起救,此时如果爷爷还没死那么营救一定成功。
成功营救的概率就是 $5/7$。
样例 3 输入
7 0.537354 0.277078 0.124580 0.046589 0.012498 0.001853 0.000048
样例 3 输出
0.59878460205905026381
数据范围
对于 $30\%$ 的数据,保证 $n\leq 3$。
对于 $60\%$ 的数据,保证 $n\leq 15$。
对于 $100\%$ 的数据,保证 $n\leq 1000$。
保证输入的 $\sum p_i =1$,小数点不超过 $6$ 位。