OIG X - krolewskie

// https://szkopul.edu.pl/problemset/problem/aHBAy-hjK-NFWqEMWaEAOhnz/site/?key=statement

#include <bitset>
#include <iostream>

std::bitset<1000000ll> tab;

size_t convert_to_bin(int n) {
    if (n == 0) {
        return 0;
    }

    int i = 0;
    while (n > 0) {
        tab[i] = n % 2;

        n = n / 2;
        i++;
    }

    return i - 1;
}

bool isKrolewska(int x) {
    size_t indx = convert_to_bin(x);

    int _count = 0;

    for (int i = indx; i >= 0; i--) {
        if (tab[i]) {
            _count++;
        }
    }

    return _count % 2 == 0;
}

int main() {
    std::ios_base::sync_with_stdio(0);
    std::cin.tie(0);
    std::cout.tie(0);

    int t;
    std::cin >> t;

    for (; t > 0; t--) {
        int k;
        std::cin >> k;

        if (k == 1) {
            std::cout << "0\n";
            continue;
        }

        if (isKrolewska(2 * k - 1)) {
            std::cout << 2 * k - 1 << '\n';
        } else {
            std::cout << 2 * k - 2 << '\n';
        }
    }

    return 0;
}