Submission #618688

#TimeUsernameProblemLanguageResultExecution timeMemory
618688maximath_1Xoractive (IZhO19_xoractive)C++11
100 / 100
4 ms392 KiB
#include "interactive.h"
#include <bits/stdc++.h>
using namespace std;

vector<int> guess(int n) {
	vector<int> ans(n);
	ans[0] = ask(1);
	map<int, int> li;
	for(int lg = 0; lg <= 6; lg ++){
		vector<int> v;
		for(int j = 2; j <= n; j ++){
			if(j & (1 << lg)) v.push_back(j);
		}
		if(v.empty()) continue;
		vector<int> gtv = get_pairwise_xor(v);
		v.push_back(1);
		vector<int> gtvp = get_pairwise_xor(v);
		map<int, int> mp;
		for(int i : gtv) if(i) mp[i] --;
		for(int i : gtvp) if(i) mp[i] ++;
		for(auto i : mp) if(i.second){
			int cr = (i.first ^ ans[0]);
			li[cr] |= (1 << lg);
		}
	}

	for(auto i : li){
		ans[i.second - 1] = i.first;
	}
	return ans;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...