IITKWPCD - Partition the sticks

You are given a set of N sticks and are required to partition them into groups of exactly 3 sticks each. While doing so, you can leave out any number of sticks out of these groups (in particular, no groups may be formed). One condition needs to be met: sticks in each group need to form a triangle. A triangle can be constructed if sum of any two sticks lengths is greater than the third length.

Your are required to partition the sticks so that the sum of triangle areas from all the groups is maximized.

Input

Very first line of the input contains integer T: number of test cases (1 <= T <= 5).

For each test case, first line contains integer N: number of sticks. (1 <= N <= 15).

Second line contains N space separated integers: the lengths li of the sticks. (1 <= li <= 10^3, 1 <= i <= N). 

Output

For each test case, output the maximal area in a separate line. Round value to exactly 6 decimal places. Always print exactly 6 decimal places.

Example

Input:
3
3
7 8 5
4
7 8 6 3
3
7 2 1

Output:
17.320508
20.333163
0.000000

Added by:praveen123
Date:2013-08-05
Time limit:1s-2s
Source limit:50000B
Memory limit:1536MB
Cluster: Cube (Intel G860)
Languages:All except: ASM64
Resource:

hide comments
2013-08-20 12:25:34 Miguel Oliveira
@Lakshman, the answer is 397819.553484
2013-08-19 14:52:50 [Lakshman]
Getting WA what is the output for.
13
7 2 1 21 22 23 1000 999 888 7 8 6 3
2013-08-19 14:52:17 [Lakshman]
@Praveen123 can you please tell me where my code fails?
© Spoj.com. All Rights Reserved. Spoj uses Sphere Engine™ © by Sphere Research Labs.