#abc138c. [abc138_c]Alchemist

[abc138_c]Alchemist

题目描述

你有一个锅和 NN 个原料。每个原料有一个实数参数称为 value,第 ii 个原料的值 (1iN)(1 \leq i \leq N)viv_i

当你将两个原料放入锅中时,它们会消失并形成一个新的原料。新原料的值将为 (x+y)/2(x + y) / 2,其中 xxyy 是被消耗的原料的值,你可以再次将这个原料放入锅中。

在你以这种方式组合原料 N1N-1 次后,你将最终得到一个原料。找出此原料的最大可能值。

约束条件

  • 2N502 \leq N \leq 50
  • 1vi10001 \leq v_i \leq 1000
  • 输入中的所有值都是整数。

输入

输入以标准格式给出,格式如下:

NN v1v_1 v2v_2 \ldots vNv_N

输出

打印一个表示剩下的最后一个原料的最大可能值的小数(或整数)。

当你的输出与标准输出的绝对误差或相对误差至多为 10510^{-5} 时,认为你的输出是正确的。


示例输入 1

2
3 4

示例输出 1

3.5

如果你有两个原料,唯一的选择就是将它们都放入锅中。由值为 3344 的原料组成的原料的值是 (3+4)/2=3.5(3 + 4) / 2 = 3.5

也可以接受打印 3.500013.49999 等等。


示例输入 2

3
500 300 200

示例输出 2

375

这次你从三个原料开始,可以选择在第一次组合时使用哪些原料。有三种可能的选择:

  • 使用值为 500500300300 的原料生成一个值为 (500+300)/2=400(500 + 300) / 2 = 400 的原料。下一次组合将使用这个原料和值为 200200 的原料,结果是一个值为 (400+200/2=300(400 + 200)/ 2 = 300 的原料。
  • 使用值为 500500200200 的原料生成一个值为 (500+200)/2=350(500 + 200) / 2 = 350 的原料。下一次组合将使用这个原料和值为 300300 的原料,结果是一个值为 (350+300/2=325(350 + 300)/ 2 = 325 的原料。
  • 使用值为 300300200200 的原料生成一个值为 (300+200)/2=250(300 + 200) / 2 = 250 的原料。下一次组合将使用这个原料和值为 500500 的原料,结果是一个值为 (250+500/2=375(250 + 500)/ 2 = 375 的原料。

因此,剩下的最后一个原料的最大可能值为 375375

也可以接受打印 375.0 等等。


示例输入 3

5
138 138 138 138 138

示例输出 3

138