제출 #667618

#제출 시각아이디문제언어결과실행 시간메모리
667618ThegeekKnight16Table Tennis (info1cup20_tabletennis)C++14
0 / 100
3087 ms22612 KiB
#include <bits/stdc++.h> #define int long long using namespace std; const int MAXN = 15e4 + 10; int atual[MAXN]; int v[MAXN]; int resp[MAXN]; bool FoundResp = false; void bt(int id, int N, int K, int g1, int g2, int nG, int sG1, int sG2) { if (FoundResp) return; // cerr << id << " " << g1 << " " << g2 << " " << nG << " " << sG1 << " " << sG2 << '\n'; if (g1 > (N / 2) || g2 > (N / 2)) return; if (id == N+K+1) { if (g1 != (N / 2) || g2 != (N / 2)) return; if (sG1 != sG2) return; for (int i = 1; i <= N + K; i++) resp[i] = atual[i]; FoundResp = true; return; } atual[id] = 1; bt(id+1, N, K, g1+1, g2, nG, sG1 + v[id], sG2); bt(id+1, N, K, g1, g2+1, nG, sG1, sG2 + v[id]); atual[id] = 0; bt(id+1, N, K, g1, g2, nG+1, sG1, sG2); } int32_t main() { ios_base::sync_with_stdio(false); cin.tie(NULL); int N, K; cin >> N >> K; for (int i = 1; i <= N + K; i++) cin >> v[i]; bt(1, N, K, 0, 0, 0, 0, 0); // if (!FoundResp) {cerr << "BABAVAVAABCABC"; return 1;} bool DaSpace = false; for (int i = 1; i <= N+K; i++) { if (resp[i]) { if (DaSpace) cout << " "; DaSpace = true; cout << v[i]; } } }
#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...