Submission #155955

#TimeUsernameProblemLanguageResultExecution timeMemory
155955MinnakhmetovCATS (NOI14_cats)C++14
8 / 25
1569 ms262144 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--) { int x, l, n; cin >> x >> l >> 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(); } } // 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...