# | Submission time | Handle | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
169604 | 2019-12-21T14:20:20 Z | apostoldaniel854 | Xoractive (IZhO19_xoractive) | C++14 | 0 ms | 0 KB |
#include <bits/stdc++.h> #include <interactive.h> using namespace std; vector <int> a; int n; typedef long long ll; #define pb push_back #define dbg(x) cerr << #x << " " << x << "\n" vector <int> guess (int n) { int lst = ask (n); dbg (n); map <int, int> nr; for (int bit = 0; bit < 7; bit++) { vector <int> q; for (int i = 1; i < n; i++) { if (i & (1 << bit)) q.pb (i); } auto x = get_pairwise_xor (q); q.pb (n); auto y = get_pairwise_xor (q); map <int, int> mp; for (auto it : x) mp[it]--; for (auto it : y) mp[it]++; for (auto it : mp) if (it.first && it.second) nr[it.first ^ lst] |= (1 << bit); } vector <int> ans (n); for (auto it : nr) ans[it.second - 1] = it.first; ans[n - 1] = lst; return ans; } int main() { cin >> n; for (int i = 0; i < n; i++) cin >> x, a.pb (x); auto ans = guess (n); for (auto it : ans) cout << it << "\n"; return 0; }