Submission #1220153

#TimeUsernameProblemLanguageResultExecution timeMemory
1220153thangdz2k7Xoractive (IZhO19_xoractive)C++20
100 / 100
3 ms504 KiB
#include "interactive.h"
#include <bits/stdc++.h>

using namespace std;

vector <int> guess(int n){
    vector <int> a(n);
    a[0] = ask(1);

    map <int, int> pos;

    for (int i = 0; (1 << i) < n; ++ i){
        vector <int> idx;
        for (int j = 1; j < n; ++ j) if ((j >> i) & 1) 
            idx.push_back(j + 1);
        
        map <int, int> cnt;
        for (int val : get_pairwise_xor(idx)) cnt[val] --;
        idx.push_back(1);
        for (int val : get_pairwise_xor(idx)) cnt[val] ++;
        cnt[0] --;

        for (auto [val, num] : cnt) 
            if (num > 0) pos[val] |= (1 << i);
    }

    for (auto [val, cur] : pos)
        a[cur] = val ^ a[0];

    return a;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...