#include <algorithm>
#include <iomanip>
#include <iostream>
#include <vector>
#include <set>
#include <numeric>
#include <map>
#include <unordered_map>
#include <stack>
#include <queue>
#include <random>
#include <chrono>
using namespace std;
#define all(a) a.begin(), a.end()
#define ll long long
#define fo(i,n) for (long long i = 0; i < n; i++)
#define pb push_back
int main()
{
ll a,b,c,d,n,m,k,input,i;
ios_base::sync_with_stdio(false);
string sinput;
cin.tie(0); cout.tie(0);
cin >> i;
while (i--)
{
cin >> n;
vector<ll> nums(n*2);
map<ll,ll> freq;
fo(j,nums.size())
{
cin >> nums[j];
freq[nums[j]] = 1;
}
ll sumdiff = 0;
for (int j = 0; j < nums.size(); j+=2)
{
sumdiff+= abs(nums[j+1]-nums[j]);
}
bool cond = false;
for (ll item : nums)
{
if (sumdiff == item)
{
cond = true;
}
}
while (true)
{
sumdiff = 0;
mt19937 rng(chrono::steady_clock::now().time_since_epoch().count());
shuffle(nums.begin(),nums.end(),rng);
for (int j = 0; j < nums.size(); j+=2)
{
sumdiff+= abs(nums[j+1]-nums[j]);
}
if (freq[sumdiff] == 0)
{
break;
}
}
cout << sumdiff << ' ';
for (ll j = 0; j < nums.size(); j+=2)
{
if (nums[j] < nums[j+1])
{
cout << nums[j+1] << ' ';
cout << nums[j] << ' ';
}
else
{
cout << nums[j] << ' ';
cout << nums[j+1] << ' ';
}
}
cout << '\n';
}
}
I2luY2x1ZGUgPGFsZ29yaXRobT4KI2luY2x1ZGUgPGlvbWFuaXA+CiNpbmNsdWRlIDxpb3N0cmVhbT4KI2luY2x1ZGUgPHZlY3Rvcj4KI2luY2x1ZGUgPHNldD4KI2luY2x1ZGUgPG51bWVyaWM+CiNpbmNsdWRlIDxtYXA+CiNpbmNsdWRlIDx1bm9yZGVyZWRfbWFwPgojaW5jbHVkZSA8c3RhY2s+CiNpbmNsdWRlIDxxdWV1ZT4KI2luY2x1ZGUgPHJhbmRvbT4KI2luY2x1ZGUgPGNocm9ubz4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKI2RlZmluZSBhbGwoYSkgYS5iZWdpbigpLCBhLmVuZCgpCiNkZWZpbmUgbGwgbG9uZyBsb25nCiNkZWZpbmUgZm8oaSxuKSBmb3IgKGxvbmcgbG9uZyBpID0gMDsgaSA8IG47IGkrKykKI2RlZmluZSBwYiBwdXNoX2JhY2sKaW50IG1haW4oKQp7CiAgICBsbCBhLGIsYyxkLG4sbSxrLGlucHV0LGk7CiAgICBpb3NfYmFzZTo6c3luY193aXRoX3N0ZGlvKGZhbHNlKTsKICAgIHN0cmluZyBzaW5wdXQ7CiAgICBjaW4udGllKDApOyBjb3V0LnRpZSgwKTsKICAgIGNpbiA+PiBpOwogICAgd2hpbGUgKGktLSkKICAgIHsKICAgICAgICBjaW4gPj4gbjsKICAgICAgICB2ZWN0b3I8bGw+IG51bXMobioyKTsKICAgICAgICBtYXA8bGwsbGw+IGZyZXE7CiAgICAgICAgZm8oaixudW1zLnNpemUoKSkKICAgICAgICB7CiAgICAgICAgCWNpbiA+PiBudW1zW2pdOwogICAgICAgIAlmcmVxW251bXNbal1dID0gMTsKICAgICAgICB9CiAgICAgICAgbGwgc3VtZGlmZiA9IDA7CiAgICAgICAgZm9yIChpbnQgaiA9IDA7IGogPCBudW1zLnNpemUoKTsgais9MikKICAgICAgICB7CiAgICAgICAgCXN1bWRpZmYrPSBhYnMobnVtc1tqKzFdLW51bXNbal0pOwogICAgICAgIH0KICAgICAgICBib29sIGNvbmQgPSBmYWxzZTsKICAgIAlmb3IgKGxsIGl0ZW0gOiBudW1zKQogICAgCXsKICAgIAkJaWYgKHN1bWRpZmYgPT0gaXRlbSkKICAgIAkJewogICAgCQkJY29uZCA9IHRydWU7CiAgICAJCX0KICAgIAl9CiAgICAJd2hpbGUgKHRydWUpCiAgICAJewogICAgCQlzdW1kaWZmID0gMDsKICAgIAkJbXQxOTkzNyBybmcoY2hyb25vOjpzdGVhZHlfY2xvY2s6Om5vdygpLnRpbWVfc2luY2VfZXBvY2goKS5jb3VudCgpKTsKICAgIAkJc2h1ZmZsZShudW1zLmJlZ2luKCksbnVtcy5lbmQoKSxybmcpOwogICAgCQlmb3IgKGludCBqID0gMDsgaiA8IG51bXMuc2l6ZSgpOyBqKz0yKQogICAgCQl7CiAgICAgICAgCQlzdW1kaWZmKz0gYWJzKG51bXNbaisxXS1udW1zW2pdKTsKICAgIAkJfQoJCSAgICBpZiAoZnJlcVtzdW1kaWZmXSA9PSAwKQoJCSAgICB7CgkJICAgIAlicmVhazsKCQkgICAgfQogICAgCX0KICAgICAgICBjb3V0IDw8IHN1bWRpZmYgPDwgJyAnOwogICAgICAgIGZvciAobGwgaiA9IDA7IGogPCBudW1zLnNpemUoKTsgais9MikKICAgICAgICB7CiAgICAgICAgCWlmIChudW1zW2pdIDwgbnVtc1tqKzFdKQogICAgICAgIAl7CiAgICAgICAgCQljb3V0IDw8IG51bXNbaisxXSA8PCAnICc7CiAgICAgICAgCQljb3V0IDw8IG51bXNbal0gPDwgJyAnOwogICAgICAgIAl9CiAgICAgICAgCWVsc2UKICAgICAgICAJewogICAgICAgIAkJY291dCA8PCBudW1zW2pdIDw8ICcgJzsKICAgICAgICAJCWNvdXQgPDwgbnVtc1tqKzFdIDw8ICcgJzsKICAgICAgICAJfQogICAgICAgIH0KICAgICAgICBjb3V0IDw8ICdcbic7CiAgICB9Cn0=