农场主瓜瓜
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
Special Judge, 64bit IO Format: %lld

题目描述

瓜瓜是一个农场主,现在他的仓库有 n 根围栏,长度分别为 。这些围栏都是直条的,不能切割。

瓜瓜可以从仓库**任意的选择几根**围栏,围成一个多边形的农场,并最大化他圈起来的面积。

瓜瓜的数学不是很好,专门去图书馆查阅了书籍,发现了一条可能有用的定理:
若固定多边形的边长,当多边形的面积取到最大时,顶点共圆。
你能帮助瓜瓜算出来最大的面积吗?

输入描述:

第一行有一个正整数 ,表示围栏的个数。

接下来有 n 行,每行有一个正整数 a_i,表示第 i 个围栏的长度,其中

输出描述:

如果围栏能拼成多边形,输出一个实数,表示围起来的最大面积。否则输出 -1

当你的输出和答案的相对误差或绝对误差不超过 时,视为正确。
示例1

输入

复制
4
2
2
2
2

输出

复制
4.000000000000000
示例2

输入

复制
3
1
1
5

输出

复制
-1
示例3

输入

复制
4
5
3
14
7

输出

复制
20.240738622886271
示例4

输入

复制
5
10
10
10
10
39

输出

复制
100.000000000000000