Submission #1231977

#TimeUsernameProblemLanguageResultExecution timeMemory
1231977AishaTable Tennis (info1cup20_tabletennis)C++20
0 / 100
3096 ms19008 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);

    bool ok = false;

    auto rec = [&](auto&& rec, int i, int cnt0, int cnt1, int cnt2, int sum1, int sum2) -> void {
        if (ok) return;
        if (cnt0 > k) return;
        if (cnt1 > n / 2) return;
        if (cnt2 > n / 2) return;

        if (i == n + k) {
            if (sum1 != sum2 || cnt1 != cnt2 || cnt0 != k) return;

            for (int j = 0; j < n + k; j ++) {
                if (v[j] == 1 || v[j] == 2) cout << a[j] << ' ';
            }

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


        v[i] = 0; rec(rec, i + 1, cnt0 + 1, cnt1, cnt2, sum1, sum2); 
        v[i] = 1; rec(rec, i + 1, cnt0, cnt1 + 1, cnt2, sum1 + a[i], sum2);  
        v[i] = 2; rec(rec, i + 1, cnt0, cnt1, cnt2 + 1, sum1, sum2 + a[i]); 
        v[i] = 0; 
    };

    rec(rec, 0, 0, 0, 0, 0, 0);
    if (!ok) cout << 0 << 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...