#include using namespace std; #define int long long #define double long double #define pii pair #define vii vector #define fi first #define se second #define pb push_back const double eps=1e-12; const int MAX = 1e16; signed main(){ cin.tie(NULL); ios_base::sync_with_stdio(false); int t; cin >> t; while(t--) { int n; cin >> n; int na, nb, nc; int ra, rb, rc; cin >> ra >> rb >> rc; na = ra; nb = rb; nc = rc; if(na < nb) swap(na, nb); if(nb < nc) swap(nb, nc); if(na < nb) swap(na, nb); // cerr << "na: " << na << " nb: " << nb << " nc: " << nc << endl; vector v(n); for(int& x : v) cin >> x; vector a(na); vector b(nb); vector c(nc); function Finish = [&]() { cout << "YES\n"; for(int x : {ra, rb, rc}) { if(x == na) { for(int y : a) cout << y << " "; cout << '\n'; na = -1; } else if(x == nb) { for(int y : b) cout << y << " "; cout << '\n'; nb = -1; } else { for(int y : c) cout << y << " "; cout << '\n'; nc = -1; } } }; sort(v.begin(), v.end()); for(int i = 0; i < na; ++i) { a[i] = v[i]; } for(int i = 0; i < nb; ++i) { b[i] = v[i + na]; } for(int i = 0; i < nc; ++i) { c[i] = v[i + na + nb]; } int sum = 0; for(int x : v) sum += x; int suma = 0, sumb = 0, sumc = 0; for(int x : a) suma += x; for(int x : b) sumb += x; for(int x : c) sumc += x; // cerr << "sa: " << suma << " sb: " << sumb << " sc: " << sumc << endl; if(suma >= sumb + sumc) { cout << "NO\n"; continue; } if(sumb >= suma + sumc) { for(int i = 0; i < nb; ++i) { suma -= a[i]; sumb -= b[i]; swap(a[i], b[i]); suma += a[i]; sumb += b[i]; if(sumb < suma + sumc) { Finish(); break; } } continue; } if(sumc >= suma + sumb) { for(int i = 0; i < nc; ++i) { suma -= a[i]; sumc -= c[i]; swap(a[i], c[i]); suma += a[i]; sumc += c[i]; if(suma >= sumb + sumc) { cout << "NO\n"; break; } if(sumc < suma + sumb) { Finish(); break; } } continue; } Finish(); } }