#include using namespace std; using ll=long long; //#define int ll #define rep(i,a,b) for(int i=a;i<(b);i++) #define sz(x) (int)(x).size() #define all(x) begin(x), end(x) using pii=pair; using vi=vector; #define fi first #define se second #define pb push_back vector ans[4]; int m[4]; int sum; int n; int a[200500]; bool bl[200500]; bool try_(vector ord) { for (int i = 0; i < n; i++) bl[i] = 0; for (int i=0; i<4; i++) ans[i].clear(); for (int it: ord) { vector cur, pref; pref = {0}; for (int i=0; i=0; i--) { if (2 * (s + a[cur[i]] + pref[lt-1]) < sum) { s += a[cur[i]], ans[it].pb(a[cur[i]]), bl[cur[i]] = 1, lt--; if (lt == 0) break; } } if (lt != 0) return false; } cout<<"YES\n"; for (int i=0; i<3; i++, cout<<"\n") for (int j : ans[i]) cout<>n; cin>>m[0]>>m[1]>>m[2]; for (int i=0; i>a[i], sum+=a[i]; sort(a, a+n); if (try_({0, 1, 2})) return; if (try_({0, 2, 1})) return; if (try_({1, 0, 2})) return; if (try_({1, 2, 0})) return; if (try_({2, 0, 1})) return; if (try_({2, 1, 0})) return; cout<<"NO\n"; } signed main() { cin.tie(0)->sync_with_stdio(0); cin.exceptions(cin.failbit); int t; cin>>t; while (t--) solve(); }