Submission #1161625

#TimeUsernameProblemLanguageResultExecution timeMemory
1161625cnn008Xoractive (IZhO19_xoractive)C++20
100 / 100
2 ms488 KiB
#include "interactive.h"
#include <bits/stdc++.h>
using namespace std;

vector <int> rsz(vector <int> &v){
	vector <int> v1;
	int n=(int)v.size();
	n=sqrt(n);
	for(int i=n; i<(int)v.size(); i+=2) v1.push_back(v[i]);
	return v1;
}
vector<int> guess(int n) {
	vector <int> ans;
	vector <int> a(n+1,0);
	vector <int> c[7];
	a[1]=ask(1);
	for(int i=0; i<7; i++){
		vector <int> v;
		for(int j=2; j<=n; j++) if((j>>i)&1) v.push_back(j);
		if(v.empty()) continue;
		vector <int> cur=get_pairwise_xor(v);
		cur=rsz(cur);
		v.push_back(1);
		vector <int> cur1=get_pairwise_xor(v);
		cur1=rsz(cur1);
		map <int,int> mp;
		for(auto x:cur1) mp[x]++;
		for(auto x:cur) mp[x]--;
		for(auto [x,y]:mp) if(y) c[i].push_back(x^a[1]);
	}
	map <int,int> mp;
	for(int i=0; i<7; i++) for(auto j:c[i]) mp[j]+=(1<<i);
	for(auto [x,y]:mp) a[y]=x;
	ans.push_back(a[1]);
	for(int i=2; i<=n; i++) ans.push_back(a[i]);
	return ans;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...