This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include "bits/stdc++.h"
#include "interactive.h"
using namespace std;
vector<int> guess(int n){
    if(n == 2)
        return {ask(1) ,ask(2)};
    vector <int> ans(n); ans[0] = ask(1);
    map <int ,int> pos;
    int lg2 = 31-__builtin_clz(n);
    for(int b=0; b<=lg2; b++){
        vector <int> ids{1};
        for(int i=2; i<=n; i++)
            if(i&(1<<b))
                ids.push_back(i);
        auto vv = get_pairwise_xor(ids);
        multiset <int> vals = multiset<int>{vv.begin() ,vv.end()};
        ids.erase(ids.begin());
        for(int r : get_pairwise_xor(ids))
            vals.erase(vals.find(r));
        for(int r : vals)
            pos[r^ans[0]] |= (1<<b);
    }
    for(auto&p : pos)
        ans[p.second-1] = p.first;
    return ans;
}
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... |