Submission #440067

#TimeUsernameProblemLanguageResultExecution timeMemory
4400678e7Xoractive (IZhO19_xoractive)C++14
100 / 100
7 ms456 KiB
#include "interactive.h" #include <set> #include <iostream> #include <algorithm> #include <map> #define ff first #define ss second using namespace std; int base; vector<int> getset(vector<int> v) { vector<int> s1, s2, ret; if (v.size() == 0) return ret; s2 = get_pairwise_xor(v); v.push_back(1); s1 = get_pairwise_xor(v); for (int i:s2) { s1.erase(find(s1.begin(), s1.end(), i)); } s1.erase(find(s1.begin(), s1.end(), 0)); for (int i:s1) { if (find(ret.begin(), ret.end(), i) == ret.end()) ret.push_back(i); } for (int &i:ret) i ^= base; return ret; } map<int, int> mp; vector<int> guess(int n) { vector <int> ans (n, 0); base = ask(1); for (int i = 0;i < 7;i++) { vector<int> que; for (int j = 2;j <= n;j++) { if (j & (1<<i)) que.push_back(j); } vector<int> res = getset(que); for (int j:res) { mp[j] += 1<<i; } } ans[0] = base; for (auto i:mp) { //cout << i.ff << " " << i.ss << endl; ans[i.ss - 1] = i.ff; } return ans; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...