#include <bits/stdc++.h>
#include "interactive.h"
using namespace std;
#define ll long long
#define N 200005
#define pb push_back
#define ff first
#define ss second
#define sz(s) (int)s.size()
ll n, t;
vector <int> a, b, c, d, h;
vector <pair<int,int> > answer;
map <int,int> vis, vip;
vector <int> guess(int n) {
answer.pb({n,a[n]});
for(int i = 1; i <= 7; i++) {
vip.clear();
b.clear();
c.clear();
d.clear();
h.clear();
for(int j = 1; j < n; j++) {
if((j & (1<<i))) b.pb(j);
}
if(sz(b)){
c = get_pairwise_xor(b);
b.pb(n);
d = get_pairwise_xor(b);
reverse(c.begin(),c.end());
reverse(d.begin(),d.end());
while(c[sz(c) - 1] == 0) c.pop_back();
while(d[sz(d) - 1] == 0) d.pop_back();
int cnt = 0;
for(int j = sz(d) - 1; j >= 0; j--) {
if(cnt < sz(c) && d[i] == c[cnt]) cnt++;
else h.pb(d[i]);
}
for(int k = 0; k < sz(h); k++) {
int x = (h[k] ^ a[n]);
vis[x] += (1<<i);
}
}
}
for(auto i : vis) {
answer.pb({i.ss,i.ff});
}
sort(answer.begin(),answer.end());
for(auto i : answer) {
a.pb(i.ss);
}
return a;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |