# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
475580 | ismoilov | Xoractive (IZhO19_xoractive) | C++14 | 0 ms | 0 KiB |
This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include<bits/stdc++.h>
#include "interactive.h"
using namespace std;
vector<int> guess(int n)
{
if(n <= 14){
vector <int> ans;
for(int i = 1; i <= n; i ++)
int x = ask(i), ans.push_back(x);
return ans;
}
int a = ask(1);
map <int, int> s;
for(int i = 0; i < 7; i ++){
vector <int> x;
for(int j = 1; j < n; j ++)
if(j >> i & 1)
x.push_back(j+1);
vector <int> c = get_pairwise_xor(x);
c.push_back(1);
vector <int> c1 = get_pairwise_xor(x);
map <int, int> g;
for(int j : c)
g[j] --;
for(int j : c1)
g[j] ++;
for(auto it : g)
if(it.second > 0)
s[it.first^a] += (1<<i);
}
vector <int> ans(n);
ans[0] = a;
for(auto it : s)
ans[it.second] = it.first;
return ans;
}