Submission #1231953

#TimeUsernameProblemLanguageResultExecution timeMemory
1231953AishaTable Tennis (info1cup20_tabletennis)C++20
0 / 100
50 ms13616 KiB
#include "bits/stdc++.h"

using namespace std;

#define int long long

signed main() {
    int n, k;
    cin >> n >> k;

    vector <int> a(n + k);
    for (int i = 0; i < n + k; i ++) cin >> a[i];
    // a is sorted

    vector <int> v(n + k, 0);

    int cnt1, cnt2, cnt0, sum1, sum2;
    cnt1 = cnt2 = cnt0 = sum1 = sum2 = 0;

    bool ok = false;

    auto rec = [&](auto&& rec, int i) -> void {
        if (ok) return;

        if (cnt1 > n / 2 || cnt2 > n / 2 || cnt0 > k) return;

        if (i == n + k) {
            if (cnt1 != n / 2 || cnt2 != n / 2 || cnt0 != k) return;
            for (int j = 0; j < n + k; j ++) {
                if (v[j] == 1) sum1 += a[j];
                if (v[j] == 2) sum2 += a[j];
            }
            for (int j = 0; j < n + k; j ++) {
                if (v[j] > 0) cout << a[j] << ' ';
            }

            cout << endl;
            ok = true;
            return;
        }

        cnt0 ++;
        rec(rec, i + 1); 
        cnt0 --;

        v[i] = 1; cnt1 ++; 
        rec(rec, i + 1);  
        v[i] = 0; cnt1 --; 
        
        v[i] = 2; cnt2 ++; 
        rec(rec, i + 1); 
        v[i] = 0; cnt2 --; 
    };

    rec(rec, 0);
    if (!ok) cout << -1 << endl;

    return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...