#include<bits/stdc++.h>
#define MAXN 107
#include "interactive.h"
using namespace std;
int n;
int p[MAXN];
vector<int> perm,all,ex1,xors[10],bits[10],ans;
unordered_set<int> s;
unordered_map<int,int> br;
vector<int> guess(int N) {
n=N;
p[1]=ask(1);
for(int i=0;i<7;i++){
for(int f=2;f<=n;f++){
if(((1<<i)&f)>0)bits[i].push_back(f);
}
bits[i].push_back(1);
if(bits[i].size()>=2){
all=get_pairwise_xor(bits[i]);
bits[i].pop_back();
ex1=get_pairwise_xor(bits[i]);
br.clear();
for(int k:ex1)br[k]++;
for(int k:all){
br[k]--;
if(br[k]<0){
xors[i].push_back(k);
s.insert(k);
}
}
}
}
for(int i=2;i<=n;i++){
br.clear();
for(int f=0;f<7;f++){
if(bits[f].empty())continue;
if(((1<<f)&i)>0){
for(int k:xors[f])br[k]++;
}else{
for(int k:xors[f])br[k]--;
}
}
int maxs=0;
for(int k:s){
if(br[k]>br[maxs])maxs=k;
}
p[i]=p[1]^maxs;
}
for(int i=1;i<=n;i++)ans.push_back(p[i]);
return ans;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |