Submission #1211199

#TimeUsernameProblemLanguageResultExecution timeMemory
1211199a.pendovXoractive (IZhO19_xoractive)C++20
100 / 100
3 ms664 KiB
#include "interactive.h" #include <bits/stdc++.h> using namespace std; unordered_multiset<int> s; unordered_set<int> s1[8]; long long solve(int a) { int x; for(int i=0;i<7;i++) { if(!(a&(1LL<<i))) { x=i; break; } } //cout<<" "<<a<<" "<<x<<endl; for(auto i:s1[x]) { int br=0; for(int j=0;j<7;j++) { if(a&(1LL<<j)) { if(s1[j].find(i)==s1[j].end())br++; } else { if(s1[j].find(i)!=s1[j].end())br++; } } if(br==7)return i; } return -1; } vector<int> guess(int n) { int x=ask(n); vector<int> v; vector<int> ans; for(int i=0;i<7;i++) { v.clear(); s.clear(); for(int j=0;j<n-1;j++) { if(!(j&(1LL<<i))) { v.push_back(j+1); } } if(v.size()==0)continue; ans=get_pairwise_xor(v); for(auto h:ans)s.insert(h); v.push_back(n); ans=get_pairwise_xor(v); for(auto h:ans) { if(s.find(h)==s.end()) { s1[i].insert(h); } else { s.erase(s.find(h)); } } s1[i].erase(0); //cout<<i<<" "; //for(auto h:s1[i])cout<<(h^x)<<" "; //cout<<endl; } ans.clear(); for(int i=0;i<n-1;i++) { ans.push_back(solve(i)^x); } ans.push_back(x); return ans; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...