XOR with smallest element Solutions
// Below Solutions is available in c++
#include<bits/stdc++.h> #define int long long using namespace std; int n,x,y,t; priority_queue<pair<int,int>> p,nul; map<int,vector<int>> k; void otto() { while(!p.empty()) { cout << -p . top().first << ' '; p.pop(); } cout << endl; } void solve() { p=nul;k.clear(); cin >> n >> x >> y; for(int i=1;i<=n;++i) { cin >> t; p.push({-t,i}); } for(int i=1;i<=y;++i) { pair<int,int> _={-((-p . top().first)^x),p . top().second}; k[p . top().second].push_back(i); if(k[p . top().second].size()==4) { int s=k[p . top().second][3]-k[p . top().second][1]; i+=(y-i)/s*s; for(;i<=y;++i) { pair<int,int> t={-((-p . top().first)^x),p . top().second}; p.pop(); p.push(t); } otto(); return; } p.pop(); p.push(_); } otto(); } signed main() { int T; cin >> T; while(T--) solve(); }
Comments
Post a Comment