Submission #523600

#TimeUsernameProblemLanguageResultExecution timeMemory
523600DragonO_oXoractive (IZhO19_xoractive)C++17
100 / 100
4 ms384 KiB
#include "interactive.h"
#include <bits/stdc++.h>

using namespace std;

#define x first
#define y second
#define pb push_back
#define all(a) a.begin(),a.end()

typedef long long ll;
typedef long double ld;
typedef unsigned long long ull;
typedef pair<int,int>pii;
typedef pair<ll,ll>pll;
typedef vector<ll>vll;
typedef vector<int>vi;
typedef vector<bool>vb;
typedef vector<vi>vvi;
typedef vector<vll>vvll;
typedef vector<pii>vpii;
typedef vector<pll>vpll;

vi guess(int n){
    if(n<=6){
        vi ans;
        for(int i=1;i<=n;++i){
            ans.pb(ask(i));
        }
        return ans;
    }
	vi ans(n);
    ans[0]=ask(1);
    map<int,int>mp;
    for(int i=0;i<7;++i){
        vi v;
        for(int j=2;j<=n;++j){
            if(1<<i&j){
                v.pb(j);
            }
        }
        vi get=get_pairwise_xor(v);
        v.pb(1);
        vi Get=get_pairwise_xor(v);
        map<int,int>cnt;
        for(int j:Get){
            cnt[j]++;
        }
        for(int j:get){
            cnt[j]--;
        }
        for(auto j:cnt){
            if(j.x&&j.y){
                mp[j.x^ans[0]]|=1<<i;
            }
        }
    }
    for(auto i:mp){
        ans[i.y-1]=i.x;
    }
	return ans;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...