#include <bits/stdc++.h>
using namespace std;
using ll = long long;
int main() {
ios_base::sync_with_stdio(false);
cin.tie(nullptr);
ll tests = 1;
cin >> tests;
while (tests-- > 0) {
int n;
cin >> n;
vector <ll> a(2 * n);
for (int i = 0; i < 2 * n; ++i) {
cin >> a[i];
}
sort (a.begin(), a.end());
bool ok = 0;
for (int i = 0; i < 2 * n - 1; ++i) {
int x = a[i] + a[2 * n - 1];
multiset <int> s;
vector <pair <int, int>> res;
for (int j = 0; j < 2 * n; ++j) {
s.insert(a[j]);
}
for (int j = 0; j < n; ++j) {
auto it = --s.end();
int mx = *it;
s.erase(it);
it = s.find(x - mx);
if (it == s.end()) {
break;
}
res.push_back({x - mx, mx});
x = mx;
s.erase(it);
}
if (res.size() == n) {
ok = 1;
cout << "YES\n";
cout << a[i] + a[2 * n - 1] << "\n";
for (auto &[x, y] : res) {
cout << x << " " << y << "\n";
}
break;
}
}
if (!ok) {
cout << "NO\n";
}
}
}
1562B - Scenes From a Memory | 1521A - Nastia and Nearly Good Numbers |
208. Implement Trie | 1605B - Reverse Sort |
1607C - Minimum Extraction | 1604B - XOR Specia-LIS-t |
1606B - Update Files | 1598B - Groups |
1602B - Divine Array | 1594B - Special Numbers |
1614A - Divan and a Store | 2085. Count Common Words With One Occurrence |
2089. Find Target Indices After Sorting Array | 2090. K Radius Subarray Averages |
2091. Removing Minimum and Maximum From Array | 6. Zigzag Conversion |
1612B - Special Permutation | 1481. Least Number of Unique Integers after K Removals |
1035. Uncrossed Lines | 328. Odd Even Linked List |
1219. Path with Maximum Gold | 1268. Search Suggestions System |
841. Keys and Rooms | 152. Maximum Product Subarray |
337. House Robber III | 869. Reordered Power of 2 |
1593C - Save More Mice | 1217. Minimum Cost to Move Chips to The Same Position |
347. Top K Frequent Elements | 1503. Last Moment Before All Ants Fall Out of a Plank |