Xsquare loves to play with arrays a lot. Today, he has an array A consisting of N distinct integers. He wants to perform following operation over his array A.
As we can see after N-1 such operations, there is only 1 element left. Xsquare wants to know the most optimal transformation strategy to reduce the given array A to only 1 element.
A transformation strategy is considered to be most optimal if it incurs minimum cost over all possible transformation strategies.
First line of input contains a single integer T denoting the number of test cases. First line of each test case starts with an integer N denoting the size of the array A. Next line of input contains N space separated integers, where ith element denotes the value Ai.
For each test case, print the minimum cost required for the transformation.
1 ≤ T ≤ 105
2 ≤ N ≤ 105
1 ≤ Ai ≤ 109
sum of N over all test case does not exceed 5*105
Prefer to use printf / scanf instead of cin / cout .
Testcase 1 : 1. Initially A[] = {1,2,3}. During first operation, Xsquare selected A_1 and A_2. Cost of this operation is 2 i.e max(A_1,A_2) . 2. Now, A[]={2,3}. During second operation, Xsquare selected A_1 and A_2. Cost of this operation is 3 i.e max(A_1,A_2) . This way Xsquare manages to transform the given array with minimum cost i.e 5. Testcase 2 : 1. Initially A[] = {1,3,2}. During first operation, Xsquare selected A_1 and A_2. Cost of this operation is 3 i.e max(A_1,A_2) . 2. Now, A[]={3,2}. During second operation, Xsquare selected A_1 and A_2. Cost of this operation is 3 i.e max(A_1,A_2) . This way , Xsquare manages to transform the given array with minimum cost i.e 6.