#include #include using namespace std; typedef unsigned long long ull; // Декларация на функцията за ход отдясно наляво. ull fRTL(ull n); // Функция за ход отляво надясно (Ми) ull fLTR(ull n) { if (n == 1) return 1; // Запазват се бисквитите на нечетни позиции → нов брой: ceil(n/2) return 2 * fRTL((n + 1) / 2) - 1; } // Функция за ход отдясно наляво (Ражки) ull fRTL(ull n) { if (n == 1) return 1; if (n % 2 == 0) // При четен брой – запазват се бисквитите на четни позиции return 2 * fLTR(n / 2); else // При нечетен брой – запазват се бисквитите на нечетни позиции return 2 * fLTR((n + 1) / 2) - 1; } int main() { ifstream inp("biscuits.in"); ofstream out("biscuits.out"); int T; inp >> T; while (T--) { ull N; inp >> N; out << fLTR(N) << "\n"; } return 0; }