Pagini recente » Cod sursa (job #2116191) | Cod sursa (job #1001813) | Cod sursa (job #2791207) | Cod sursa (job #440258) | Cod sursa (job #2101349)
#include <fstream>
#include <vector>
#include <string>
using namespace std;
const int MaxN = 30001;
ifstream cin("queue.in");
ofstream cout("queue.out");
int n;
vector<int>vInit;
vector<int>vInv;
int nrfind(string str) {
int nr0 = 0;
for (int p = 10; p < str.size() - 1; p++) {
nr0 = nr0 * 10 + str[p] - '0';
}
return nr0;
}
int main() {
cin >> n;
for (int i = 1; i <= n; ++i) {
string S1;
cin >> S1;
if (S1[1] == 'o') {
cout << i << ": ";
if (vInv.size()) {
cout << "pop(2) write(" << vInv.back() << ")\n";
vInv.pop_back();
}
else if (vInit.empty()) {
cout << '\n';
}
else {
while (vInit.size() >= 2) {
vInv.push_back(vInit.back());
cout << "pop(1) push(2," << vInit.back() << ") ";
vInit.pop_back();
}
cout << "pop(1) write(" << vInit.back() << ")\n";
vInit.pop_back();
}
}
else {
int nr_curr = nrfind(S1);
vInit.push_back(nr_curr);
cout << i << ": read(" << nr_curr << ") push(1," << nr_curr << ")\n";
}
}
return 0;
}