Submission #155961

#TimeUsernameProblemLanguageResultExecution timeMemory
155961MinnakhmetovCATS (NOI14_cats)C++14
12 / 25
3 ms504 KiB
// #include <bits/stdc++.h> // #define ll long long // #define all(aaa) aaa.begin(), aaa.end() // using namespace std; // int f(ll x, ll y) { // if (x == 0) // return 0; // if (x < y / 2) // return f(x, y / 2); // return f(x - y / 2, y / 2) ^ 1; // } // signed main() { // ios_base::sync_with_stdio(0); // cin.tie(0); // int q; // cin >> q; // while (q--) { // ll x, l, n; // cin >> x >> l >> n; // x--; // cout << x << "\n"; // ll ans = 2 * (l / (n << 1) + 1) * n; // cout << (ans ^ f(x, 1ll << 61)) << "\n"; // } // return 0; // } #include <bits/stdc++.h> #define ll long long #define all(aaa) aaa.begin(), aaa.end() using namespace std; struct MyStack { vector<int> v; int flip = 0; void push(int x) { v.push_back(x); } int pop() { if (!v.empty()) { int x = v.back(); v.pop_back(); return x; } return flip; } int top() { return v.empty() ? flip : v.back(); } void add() { push(pop() + pop()); } }; signed main() { ios_base::sync_with_stdio(0); cin.tie(0); int q; cin >> q; while (q--) { ll x, l, n; cin >> x >> l >> n; ll h = l / (n << 1) + 1; ll ans = 2 * h * n; x--; x %= (2 << h); while (x > 0) { ans ^= (x & 1); x >>= 1; } cout << ans << "\n"; // string sa, sb; // MyStack s1, s2; // int counter = x, j = 0, gg = 0; // while (counter > 0) { // s2.push(s1.pop()); // for (int &i : s1.v) // i ^= 1; // s1.flip ^= 1; // // cout << "s1 : "; // // for (int x : s1.v) { // // cout << x / n << "n"; // // if (x % 2) // // cout << "^1"; // // cout << ", "; // // } // // cout << "\n"; // // cout << "T2 = "; // int x = s2.v.back(); // // cout << x / n << "\n"; // // if (x % 2) // // cout << "^1"; // if (s2.top() > l) { // counter--; // gg++; // if (gg % 2 == 0) // sa.push_back(s2.top() % 2 + '0'); // else // sb.push_back(s2.top() % 2 + '0'); // j++; // // if (j % (1 << h) == 0) // // cout << "\n"; // // if (counter == 0) // // cout << s2.top() << "\n"; // } // else { // s2.push(n); // s2.push(n); // s2.add(); // s2.add(); // s1.push(s2.top()); // s1.push(s2.top()); // s2.pop(); // s2.pop(); // } // } // cout << sa << " " << sb << "\n"; // // COUNTER = X // // WHILE COUNTER > 0 // // S2 PUSH T1 //Push the top element of S1 onto S2 // // S1 POP //Pop the top element of S1 // // FLIP LAST BINARY BIT OF ALL NUMBERS IN S1 // // IF T2 > L // // COUNTER = COUNTER - 1 // // IF COUNTER == 0 PRINT T2 // // ELSE // // S2 PUSH N // // S2 PUSH N // // S2 ADD // // S2 ADD // // S1 PUSH T2 // // S1 PUSH T2 // // S2 POP // // S2 POP } return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...