제출 #1187069

#제출 시각아이디문제언어결과실행 시간메모리
1187069PieArmyXoractive (IZhO19_xoractive)C++20
100 / 100
2 ms520 KiB
#include "interactive.h"
#include<bits/stdc++.h>
typedef long long ll;
#define pb push_back
#define fr first
#define sc second
#define endl '\n'
using namespace std;

vector<int> guess(int n) {
	vector <int> ans(n);
	ans[0]=ask(1);
	map<int,int>loc;
	for(int i=0;(1<<i)<=n;i++){
		vector<int>v;
		for(int j=2;j<=n;j++){
			if((j-1)&(1<<i))v.pb(j);
		}
		v.pb(1);
		vector<int>res=get_pairwise_xor(v);
		map<int,int>cnt;
		for(int x:res){
			if(x==0)continue;
			cnt[x]++;
		}
		v.pop_back();
		if(v.size())res=get_pairwise_xor(v);
		for(int x:res){
			if(x==0)continue;
			if(!--cnt[x])cnt.erase(x);
		}
		for(auto[a,b]:cnt){
			loc[a^ans[0]]+=(1<<i);
		}
	}
	for(auto[a,b]:loc){
		ans[b]=a;
	}
	return ans;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...