#arc122b. [arc122_b]Insurance

[arc122_b]Insurance

题目描述

Snuke已经读取了自己明天的运势,并了解到有NN种可能发生的情况,其中每一种情况明天发生的概率相等。第ii种情况将花费他AiA_i日元(日本货币)。

在此之后,Snuke决定今天购买保险。如果他向保险公司支付xx日元,则当损失AiA_i日元时,他将获得min(Ai,2x)\\min(A_i, 2x)日元的赔偿。在这里,他可以选择任何非负的实数作为xx

Snuke希望尽量减少他所损失的金额的期望值,即 x+Aimin(Ai,2x)x+A_i-\\min(A_i,2x)。找出最小化的值。

约束条件

  • 1N1051 \leq N \leq 10^5
  • 1Ai1091 \leq A_i \leq 10^9
  • 输入中的所有值都是整数。

输入

从标准输入读入数据,格式如下:

NN A1A_1 A2A_2 \cdots ANA_N

输出

打印答案。只要您的答案的绝对误差或相对误差不超过10610^{-6},则视为正确。


示例输入 1

3
3 1 4

示例输出 1

1.83333333333333333333

最佳选择是x=1.5x=1.5。支付1.51.5日元后,以下三种情况将以相等的概率发生之一:

  • 情况1:损失33日元,并获得min(3,2x)=3\\min(3,2x)=3日元的赔偿。总的来说,Snuke损失了x+A1min(A1,2x)=1.5+33=1.5x+A_1-\\min(A_1,2x)=1.5+3-3=1.5日元。

  • 情况2:损失11日元,并获得min(1,2x)=1\\min(1,2x)=1日元的赔偿。总的来说,Snuke损失了x+A2min(A2,2x)=1.5+11=1.5x+A_2-\\min(A_2,2x)=1.5+1-1=1.5日元。

  • 情况3:损失44日元,并获得min(4,2x)=3\\min(4,2x)=3日元的赔偿。总的来说,Snuke损失了x+A3min(A3,2x)=1.5+43=2.5x+A_3-\\min(A_3,2x)=1.5+4-3=2.5日元。

因此,Snuke损失的金额的期望是(1.5+1.5+2.5)/3=1.833333cdots(1.5+1.5+2.5)/3=1.833333\\cdots日元。


示例输入 2

10
866111664 178537096 844917655 218662351 383133839 231371336 353498483 865935868 472381277 579910117

示例输出 2

362925658.10000000000000000000