Submission #1132281

#TimeUsernameProblemLanguageResultExecution timeMemory
1132281MuhammetXoractive (IZhO19_xoractive)C++17
Compilation error
0 ms0 KiB
#include <bits/stdc++.h>
#include "interactive.h"
// #include "grader.cpp"

using namespace std;

#define SZ(s) (int)s.size()
#define ff first
#define ss second

int x;

map <int,int> vis, vis1, mp;

vector <int> get(vector <int> v){
	vector <int> v1, v2, v3;
	v.push_back(n);
	v1 = get_pairwise_xor(v);
	v.pop_back();
	v2 = get_pairwise_xor(v);
	vis.clear(), vis1.clear();
	vis[0]++;
	for(auto i : v2) {
		vis[i]++;
	}
	for(auto i : v1) {
		if(vis[i]) vis[i]--;
		else {
			if(vis1[i^x] == 0){
				vis1[i^x] = true;
				v3.push_back(i^x);
			}
		}
	}
	return v3;
}

vector<int> guess(int n) {
	x = (ask(n));
	vector <vector <int>> vc, vc1;
	vector <pair<int,int>> ve, ve1;
	vc.push_back({0});
	ve.push_back({1,n});
	vector <int> ans(n,0);
	while(SZ(vc) > 0) {
		vector <int> v;
		for(int i = 0; i < SZ(vc); i++){
			int l = ve[i].ff, r = ve[i].ss;
			// cout << l << ' ' << r << '\n';
			for(int j = l; j <= ((l + r) / 2); j++){
				if(j == n) continue;
				v.push_back(j);
			}
		}
		// cout << '\n';
		if(SZ(v) == 0) break;
		vector <int> v3 = get(v);
		for(int i = 0; i < SZ(vc); i++){
			vector <int> vec;
			int l = ve[i].ff, r = ve[i].ss;
			if(SZ(vc[i]) == 1) {
				for(auto j : v3){
					if(vis1[j] == true) vec.push_back(j);
				}
				if(SZ(vec) == 1) ans[l-1] = vec[0];
				else vc1.push_back(vec), ve1.push_back({l,(l+r)/2});
				if((r-l+1) - SZ(vec) == 1) continue;
				else vc1.push_back({0}), ve1.push_back({(l+r)/2+1,r});
				continue;
			}
			for(auto j : vc[i]){
				if(vis1.find(j) != vis1.end()) vec.push_back(j);
			}
			if(SZ(vec) == 1) ans[l-1] = vec[0];
			else vc1.push_back(vec), ve1.push_back({l,(l+r)/2});
			vec.clear();
			for(auto j : vc[i]){
				if(vis1.find(j) == vis1.end()) vec.push_back(j);
			}
			if(SZ(vec) == 1) ans[r-1] = vec[0];
			else vc1.push_back(vec), ve1.push_back({(l+r)/2+1,r});
			for(auto j : vc[i]){
				if(vis1.find(j) != vis1.end()) vis1[j] = false;
			}
			vec.clear();
		}
		vc = vc1;
		vc1.clear();
		ve = ve1;
		ve1.clear();
	}
	ans[n-1] = x;
	// ans[0] = x;
	// ans[n-1] = ask(n);
	return ans;
}

Compilation message (stderr)

Xoractive.cpp: In function 'std::vector<int> get(std::vector<int>)':
Xoractive.cpp:17:21: error: 'n' was not declared in this scope
   17 |         v.push_back(n);
      |                     ^