#include <iostream>
#include <cstdio>
#include <algorithm>
#include <cmath>
#include <cstring>
#include <string>
#include <vector>
#include <queue>
#define LL long long
#define N 1100
using namespace std; //poj1700 过河问题---贪心算法
int a1[N];
int main()
{
int n, t, ans, T, a, b, c, d;
scanf("%d", &T);
while(T--)
{
scanf("%d", &n);
for(t=0; t<n; ++t)
scanf("%d", a1+t);
sort(a1, a1+n);
if(n==1)
{
printf("%d\n", a1[0]);
continue;
}
a=a1[0];
b=a1[1];
for(t=n-1, ans=0; t>=0; ) //先把右边大的数移过去
{
if(t==1) //最后只剩下a和b
{
ans+=b;
break;
}
if(t==2) //最后只剩下三个
{
ans+=a+b+a1[t];
break;
}
c=a1[t-1];
d=a1[t];
if(2*b>a+c) //最优方案有两种
{
ans+=a+c+a+d;
}
else ans+=2*b+a+d;
t-=2;
}
printf("%d\n", ans);
}
return 0;
}