#include<stdio.h>
#include<stdlib.h>
#include<algorithm>
using namespace std;
int cmp(const void *a,const void *b)
{
return *(int *)a-*(int *)b;
}
int main()
{
int t, n, a[1001], i;
scanf("%d", &t);
while(t--)
{
int sum = 0;
scanf("%d", &n);
for(i=0; i<n; i++)
{
scanf("%d", &a[i]);
}
qsort(a, n, sizeof(a[0]), cmp);
while(1)
{
if(n == 1)
{
sum += a[0];
break;
}
else if(n == 2)
{
sum += a[1];
break;
}
else if(n == 3)
{
sum += a[0]+a[1]+a[2];
break;
}
else
{
if(2*a[1] > a[n-2]+a[0])
sum += 2*a[0]+a[n-1]+a[n-2];
else
sum += 2*a[1]+a[0]+a[n-1];
n = n-2;
}
}
printf("%d\n", sum);
}
return 0;
}
#include<stdlib.h>
#include<algorithm>
using namespace std;
int cmp(const void *a,const void *b)
{
return *(int *)a-*(int *)b;
}
int main()
{
int t, n, a[1001], i;
scanf("%d", &t);
while(t--)
{
int sum = 0;
scanf("%d", &n);
for(i=0; i<n; i++)
{
scanf("%d", &a[i]);
}
qsort(a, n, sizeof(a[0]), cmp);
while(1)
{
if(n == 1)
{
sum += a[0];
break;
}
else if(n == 2)
{
sum += a[1];
break;
}
else if(n == 3)
{
sum += a[0]+a[1]+a[2];
break;
}
else
{
if(2*a[1] > a[n-2]+a[0])
sum += 2*a[0]+a[n-1]+a[n-2];
else
sum += 2*a[1]+a[0]+a[n-1];
n = n-2;
}
}
printf("%d\n", sum);
}
return 0;
}