제출 #1315576

#제출 시각아이디문제언어결과실행 시간메모리
1315576nikoloz-chTable Tennis (info1cup20_tabletennis)C++20
9 / 100
3092 ms71248 KiB
#include <bits/stdc++.h> using namespace std; bool dn = false; int n; vector<int> a; void rec(int chk, int cnt, set<int> st){ if(dn) return; if(cnt == n){ for(auto &i : st) cout << a[i] << " "; cout << endl; dn = true; return; } for(int i = 0; i < a.size(); i++){ if(st.find(i) != st.end()) continue; for(int j = 0; j < a.size(); j++){ if(st.find(j) != st.end() or i == j or chk != a[i]+a[j]) continue; auto s = st; s.insert(i); s.insert(j); rec(chk,cnt+2,s); } } } inline void solve(){ int k; cin >> n >> k; a.resize(n+k); for(auto &i : a) cin >> i; if(n <= 100 and k <= 100){ for(int i = 0; i < a.size(); i++){ for(int j = 0; j < a.size(); j++){ if(i == j) continue; set<int> st; st.insert(i);st.insert(j); rec(a[i]+a[j],2,st); } } return; } if(k == 1){ map<int,set<int>> mp; set<int> st1; for(int i = 3; i < n+k; i++){ mp[a[0]+a[i]].insert(a[i]); mp[a[1]+a[i]].insert(a[i]); mp[a[2]+a[i]].insert(a[i]); st1.insert(a[0]+a[i]); } vector<int> ans; for(auto &i : st1){ if(mp[i].size() >= 2){ ans.push_back(i); } } int p = accumulate(a.begin(),a.end(),0LL); for(auto &t : ans){ int pos = -1; for(int i = 0; i < n+k; i++){ if(p-a[i] == t*n/2){ pos = i; break; } } if(pos == -1) continue; for(int i = 0; i < n+k; i++){ if(pos == i) continue; cout << a[i] << " "; } cout << endl; break; } return; } cout << 67; } signed main(){ cin.tie(0)->sync_with_stdio(0); int _ = 1;// cin >> _; cout.tie(0); while(_--) solve(); }
#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...