제출 #1231960

#제출 시각아이디문제언어결과실행 시간메모리
1231960AishaTable Tennis (info1cup20_tabletennis)C++20
0 / 100
3095 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]; // 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; cnt1 = 0, cnt2 = 0; for (int j = 0; j < n + k; j ++) { if (v[j] == 1) sum1 += a[j], cnt1 ++; if (v[j] == 2) sum2 += a[j], cnt2 ++; } if (sum1 != sum2 || cnt1 != cnt2) return; 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...