#include using namespace std; const int c=200005; long long n, sum, f, t[c], pref[c]; int kis, koz, nagy; vector > sor; vector ans[3]; void solve() { cin >> n; for (int i=0; i<3; i++) { int x; cin >> x; sor.push_back({x, i}); } sort(sor.begin(), sor.end()); kis=sor[0].first, koz=sor[1].first, nagy=sor[2].first; assert(kis<=koz && koz<=nagy); for (int i=1; i<=n; i++) { cin >> t[i]; } sort(t+1, t+n+1); for (int i=1; i<=n; i++) { pref[i]=pref[i-1]+t[i]; } sum=pref[n], f=(sum+1)/2; //cout << "osszeg " << sum << " " << f << "\n"; if (pref[nagy]>=f || t[n]+pref[kis-1]>=f) { cout << "NO\n"; } else { int db=1; while (db=f) { //cout << "osszeg " << pref[veg]-pref[veg-db2]+pref[kezd+db2]-pref[kezd] << "\n"; //cout << "baj " << veg << " " << veg-db2 << " " << kezd+db2 << " " << kezd << "\n"; db2--; //cout << "lep " << koz << " " << db2 << "\n"; } int kezd2=kezd+koz-db2, veg2=veg-db2; //cout << "ertekek: " << koz << " " << db2 << " " << kezd2 << " " << veg2 << "\n"; for (int i=1; i<=n; i++) { if (i<=kezd || veg> w; while (w--) { solve(); } return 0; } /* 1 10 1 3 6 1 1 1 1 1 1 2 2 2 2 */ /* 1 5 1 1 3 1 1 10 10 10 */ /* 1 6 2 2 2 1 1 1 1 1 1 */ /* 4 6 2 2 2 1 1 1 1 1 1 5 3 1 1 1 1 1 1 1 6 2 2 2 1 1 1 1 1 3 8 5 1 2 16 1 1 1 1 1 1 12 */