#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];
sort(a.begin(), a.end());
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;
if (cnt1 + cnt2 != n) 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 time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |