제출 #1139205

#제출 시각아이디문제언어결과실행 시간메모리
1139205AHOKAXoractive (IZhO19_xoractive)C++20
100 / 100
3 ms572 KiB
#include <bits/stdc++.h> #include "interactive.h" //#include "grader.cpp" using namespace std; #define threesum cin.tie(NULL); cout.tie(NULL); ios_base::sync_with_stdio(false) #define all(a) a.begin(), a.end() #define F first #define S second //#define int long long #define double long double #define pii pair<int, int> #define ppp pair<int, pii> #define dout cout << fixed << setprecision(15) #define mid ((l + r) / 2) #define lc (2 * id) #define rc (lc + 1) //const int maxn = 3e5 + 10, maxm = 1e3 + 10, oo = 1e18 + 10, lg = 8, sq = 350, mod = 1e9 + 7; vector<int> guess(int n){ vector<int> a(n); a[0] = ask(1); map<int, int> mp; for (int b = 0; b < 7;b++){ vector<int> u, v, f; for (int i = 2; i <= n; i++) if(i & (1ll << b)) v.push_back(i); if(!v.size()) continue; u = get_pairwise_xor(v); v.push_back(1); f = get_pairwise_xor(v); multiset<int> s; for(auto i : f) s.insert(i); for(auto i : u) s.erase(s.find(i)); for(auto j : s) mp[j ^ a[0]] |= (1ll << b); } vector<pii> vp; for(auto [x, msk] : mp) vp.push_back({msk, x}); set<int> used; used.insert(a[0]); sort(all(vp)); reverse(all(vp)); for(auto [msk, x] : vp) if(used.find(x) == used.end()){ a[msk - 1] = x; used.insert(x); } return a; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...