Cod sursa(job #2964617)

Utilizator ezluciPirtac Eduard ezluci Data 13 ianuarie 2023 14:48:55
Problema A+B Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.68 kb
#ifdef EZ
   #include "./ez/ez.h"
#else
   #include <bits/stdc++.h>
#endif
#define mp make_pair
#define mt make_tuple
#define ll long long
#define pb push_back
#define fi first
#define se second
using namespace std;

int xorrange(int dr)
{
   int ans = 0;
   for (int i = dr>>2<<2; i <= dr; ++i)
      ans ^= i;
   return ans;
}

int main()
{
   cin.tie(0)->sync_with_stdio(0);
   
   int q;
   cin >> q;
   while (q--)
   {
      int x;
      cin >> x;
      
      int xo = xorrange(x), nr = 0;
      for (int i = 31 - __builtin_clz(x); i >= 0; --i)
         if (!(xo & 1<<i))
            if ((nr | 1<<i) <= x)
               nr |= 1<<i;
      
      cout << xo << ' ' << (xo | nr) << '\n';
   }
}