Alaa 怀念她童年时玩的一种拼搭玩具。它由可以在两端固定的线段组成。她喜欢玩的一个游戏是:首先将一条线段作为底边,平放在笔直的墙壁上。然后,她不断地添加三角形,其中新三角形的一条边是结构中已有的线段,另外两条边是新添加的线段。
她只添加真正的三角形:即任意两边之和永远不等于第三边。当然,线段不能穿过墙壁,但她允许新添加的线段与已有的线段交叉。她的目标是观察她的结构能延伸到距离墙壁多远的地方。她会尝试用部分或全部线段的不同组合来构建各种结构。如果她使用的所有线段长度都相同,那将是一项简单而无聊的任务!如果她走向另一个极端,从一组长度各不相同的线段开始,情况就会变得更有趣。例如,下图展示了她可以用长度为 42, 40, 32, 30, 25, 18 和 15 的线段构建的一些结构,其中包括一个距离墙壁最远可达 66.9495 的结构。
距离:29.4619634 (a) 距离:42.3374133 (b) 距离:66.9495287 (c)
现在,作为一名计算机科学专业的学生,回首往事,Alaa 想知道她当时做得有多好,因此她决定编写一个程序,根据给定的一组线段长度计算出最大距离。
输入格式
输入为一行正整数。第一个整数 $n$ 表示线段的数量,满足 $3 \le n \le 9$。随后的 $n$ 个整数 $l_1 > l_2 > \dots > l_n$ 表示线段的长度,满足对于所有 $j$ 都有 $1 \le l_j \le 99$。这些长度保证至少可以构成一个三角形。
输出格式
输出 Alaa 的结构能够达到的最大距离,要求相对误差或绝对误差不超过 $10^{-2}$。
输入数据经过选择,使得任何达到最大距离的结构,其除底边顶点外的所有顶点距离墙壁至少 $0.0001$。
样例
样例输入 1
3 50 40 30
样例输出 1
40
样例输入 2
4 50 40 30 29
样例输出 2
40
样例输入 3
7 42 40 32 30 25 18 15
样例输出 3
66.949528