Submission #956996

#TimeUsernameProblemLanguageResultExecution timeMemory
956996pragmatistXoractive (IZhO19_xoractive)C++17
6 / 100
3 ms540 KiB
#include "interactive.h" #include <bits/stdc++.h> using namespace std; vector<int> guess(int n) { vector<int> ans(n+1, -1); map<int, int> cnt[10]; for(int i = 0; (1<<i) <= n; ++i) { vector<int> ind; for(int j = 1; j <= n; ++j) { if(j >> i & 1) { ind.push_back(j); } } assert(!ind.empty()); ans[ind[0]] = ask(ind[0]); int st = ans[ind[0]]; if((int)ind.size()== 1) { continue; } map<int, int> cur; vector<int> c1 = get_pairwise_xor(ind); for(auto x : c1) { cur[x]++; } ind.erase(ind.begin()); vector<int> c2 = get_pairwise_xor(ind); for(auto x : c2) { cur[x]--; } vector<int> v = {st}; for(auto e : cur) { if(e.second == 0) { continue; } v.push_back(e.first^st); } for(auto x : v) { cnt[i][x]++; } } for(int i = 1; i <= n; ++i) { if(ans[i] != -1) { continue; } map<int, int> cur; int tot = 0; for(int j = 0; (1 << j) <= i; ++j) { if(i >> j & 1) { tot++; for(auto e : cnt[j]) { cur[e.first]++; } } } for(auto e : cur) { if(e.second == tot) { ans[i] = e.first; } } } ans.erase(ans.begin()); return ans; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...