제출 #1132027

#제출 시각아이디문제언어결과실행 시간메모리
1132027KasymKXoractive (IZhO19_xoractive)C++17
94 / 100
3 ms524 KiB
#include "bits/stdc++.h" #include "interactive.h" using namespace std; #define ff first #define ss second #define all(v) v.begin(), v.end() #define ll long long #define pb push_back #define pii pair<int, int> #define pli pair<ll, int> #define pll pair<ll, ll> #define tr(i, c) for(auto i = c.begin(); i != c.end(); ++i) #define wr puts("----------------") template<class T>bool umin(T& a,T b){if(a>b){a=b;return 1;}return 0;} template<class T>bool umax(T& a,T b){if(a<b){a=b;return 1;}return 0;} // const int N = 105; // int dream[N]; // vector<int> get_pairwise_xor(vector<int> &a){ // vector<int> ret; // tr(it, a) // tr(it2, a) // ret.pb(dream[*it]^dream[*it2]); // assert((int)ret.size()==(int)a.size()*(int)a.size()); // return ret; // } // int ask(int i){ // return dream[i]; // } vector<int> guess(int n){ vector<int> ret(n), id, v; map<int, int> mp, as; int knew=ask(1); ret[0]=knew; for(int i = 1; i <= n; i*=2){ id.clear(); for(int mk = 2; mk <= n; ++mk) if(mk&i) id.pb(mk); v.clear(), mp.clear(); id.pb(1); v=get_pairwise_xor(id); tr(it, v) mp[*it]++; id.pop_back(); v=get_pairwise_xor(id); tr(it, v) mp[*it]--; for(auto ad : mp){ if(ad.ss==0) continue; as[ad.ff^knew]|=i; } } for(auto i : as) ret[i.ss-1]=i.ff; return ret; } // int main(){ // int n; // scanf("%d", &n); // for(int i = 1; i <= n; ++i) // scanf("%d", dream+i); // vector<int> wow=guess(n); // tr(it, wow) // printf("%d ", *it); // puts(""); // return 0; // }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...