Submission #155959

#TimeUsernameProblemLanguageResultExecution timeMemory
155959MinnakhmetovCATS (NOI14_cats)C++14
0 / 25
76 ms2224 KiB
#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 ans = 2 * (l / (n << 1) + 1) * n; x--; if (x % 4 == 0 || x % 4 == 3) ans ^= 1; cout << ans << "\n"; // MyStack s1, s2; // int counter = x; // while (counter > 0) { // s2.push(s1.pop()); // for (int &i : s1.v) // i ^= 1; // s1.flip ^= 1; // if (s2.top() > l) { // counter--; // 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 << "\n"; // 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--; // // 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(); // } // } // 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...