제출 #1231698

#제출 시각아이디문제언어결과실행 시간메모리
1231698AishaTable Tennis (info1cup20_tabletennis)C++20
0 / 100
3094 ms12096 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];

    vector <int> v(n + k);
    int cnt1, cnt2, cnt0;
    cnt1 = cnt2 = cnt0 = 0;
    int sum1, sum2;
    sum1 = sum2 = 0;

    bool ok = false;

    auto rec = [&](auto&& rec, int i) -> void {
      //  cout << i << endl;
        if (ok) return;
        if (cnt1 > n / 2 || cnt2 > n / 2 || cnt0 > k) return;
        if (i == n + k) {
            if (cnt1 != cnt2 || cnt0 != k) return;
            if (sum1 != sum2) return;
            
            for (int j = 0; j < n + k; j ++) {
                if (v[j]) cout << a[j] << ' ';
            }

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

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

    rec(rec, 0);

    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...