제출 #1210494

#제출 시각아이디문제언어결과실행 시간메모리
1210494perekopskadXoractive (IZhO19_xoractive)C++20
100 / 100
3 ms504 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> pos;

	for(int b = 0; (1 << b) < n; b++) {
		vector <int> v;
		for(int i = 0; i < n; i++)
			if((i >> b & 1))
				v.push_back(i + 1);

		if(v.empty())
			continue;

		vector <int> r1 = get_pairwise_xor(v);
		v.push_back(1);
		vector <int> r2 = get_pairwise_xor(v);

		map <int, int> mp;
		for(int i : r2)
			mp[i]++;
		for(int i : r1)
			mp[i]--;

		for(auto i : mp) {
			if(!i.first || !i.second) continue;
			int val = i.first ^ ans[0];
			pos[val] += (1 << b);
		}
	}

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