Codeforces
CF Step
Youtube Linkedin Discord Toggle Dark/Light/Auto mode Toggle Dark/Light/Auto mode Toggle Dark/Light/Auto mode Back to homepage

Code: No Effect XOR

/**
 *    author:  tourist
 *    created: 19.12.2025 06:58:52
 **/
#include <bits/stdc++.h>

using namespace std;

#ifdef LOCAL
#include "algo/debug.h"
#else
#define debug(...) 42
#endif

int main() {
    ios::sync_with_stdio(false);
    cin.tie(nullptr);
    int tt;
    cin >> tt;
    while (tt--) {
        int64_t l, r;
        cin >> l >> r;
        int64_t ans = 1;
        while (l % 2 == 0 && r % 2 == 1) {
            ans *= 2;
            l >>= 1;
            r >>= 1;
        }
        vector<int> vl, vr;
        while (l > 0 || r > 0) {
            vl.push_back(int(l & 1));
            vr.push_back(int(r & 1));
            l >>= 1;
            r >>= 1;
        }
        int ptr = int(vl.size());
        while (ptr > 0 && vl[ptr - 1] + vr[ptr - 1] != 1) {
            ptr -= 1;
        }
        if (ptr > 0) {
            bool ok = true;
            for (int i = 0; i < ptr; i++) {
                if (vl[i] + vr[i] != 1) {
                    ok = false;
                    break;
                }
            }
            if (ok) {
                ans *= 2;
            }
        }
        cout << ans - 1 << '\n';
    }
    return 0;
}
// Author: Kevin
#include <bits/stdc++.h>
//#pragma GCC optimize("O2")
using namespace std;
#define pb emplace_back
#define mp make_pair
#define ALL(x) (x).begin(), (x).end()
#define rALL(x) (x).rbegin(), (x).rend()
#define srt(x) sort(ALL(x))
#define rev(x) reverse(ALL(x))
#define rsrt(x) sort(rALL(x))
#define sz(x) (int)(x.size())
#define inf 0x3f3f3f3f
#define lb(v, x) (int)(lower_bound(ALL(v), x) - v.begin())
#define ub(v, x) (int)(upper_bound(ALL(v), x) - v.begin())
#define uni(v) v.resize(unique(ALL(v)) - v.begin())
using ll = long long;
using ull = unsigned long long;
using pii = pair<int, int>;
using i128 = __int128_t;
void die(string S) {
    puts(S.c_str());
    exit(0);
}
int main() {
    ios_base::sync_with_stdio(false);
    cin.tie(0);
    cout.tie(0);
    int t;
    cin >> t;
    while (t--) {
        ll l, r;
        cin >> l >> r;
        ll ans = 1;
        for (ll i = 2; i <= r * 10; i *= 2) {
            ll v = r / i * i;
            if (v <= l) {
                ll mid = v + i / 2;
                if (r - mid == mid - l - 1)
                    ans *= 2;
            } else {
                if (r % i == i - 1 && l % i == 0) {
                    ans *= 2;
                }
            }
        }
        cout << ans - 1 << '\n';
    }
    return 0;
}