Submission #1173932

#TimeUsernameProblemLanguageResultExecution timeMemory
1173932ByeWorldXoractive (IZhO19_xoractive)C++20
0 / 100
3 ms664 KiB
#include "interactive.h"
#include <bits/stdc++.h>
#define ll long long
#define pb push_back
#define fi first
#define se second
#define lf (id<<1)
#define rg ((id<<1)|1)
#define md ((l+r)>>1)
#define ld long double
using namespace std;
typedef pair<int,int> pii;
typedef pair<char,char> pcc;
typedef pair<pii,int> ipii;
typedef pair<pii,pii> ipiii;
const int MAXN = 2e5+10;
const int SQRT = 300;
const int MAXA = 50;
const int LOG = 20;
const ld EPS = 1e-12;
const int MOD = 1e9+7;
int sum(int a, int b){ return (a+b)%MOD; }
void chsum(int &a, int b){ a = (a+b)%MOD; }
void chmn(int &a, int b){ a = min(a, b); }
void chmx(int &a, int b){ a = max(a, b); }

map<int,int> idx;

vector<int> guess(int n) {
	vector<int>ans(n);
	ans[0] = ask(1);
	for(int i=0; (1ll<<i)<=n; i++){
		vector<int> vec;
		for(int j=2; j<=n; j++)
			if((j>>i) & 1) vec.pb(j);
		vector<int> v1 = get_pairwise_xor(vec);
		vec.pb(1);
		vector<int> v2 = get_pairwise_xor(vec);

		map<int,int>m;
		for(auto in : v1) m[in]--;
		for(auto in : v2) m[in]++;
		for(auto [x,y] : m)
			idx[x ^ ans[0]] |= (1ll<<i);
	}
	for(auto [x,y] : idx)
		ans[y] = x;
	return ans;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...