Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <algorithm>
- #include <iostream>
- #include <queue>
- #include <stack>
- int main()
- {
- int temp{};
- int command{};
- int max{};
- while (std::cin >> max)
- {
- std::queue<int> x_queue{};
- std::priority_queue<int> x_priority_queue{};
- std::stack<int> x_stack{};
- bool isQueue{true}, isPQueue{true}, isStack{true};
- for (int i = 0; i < max; i++)
- {
- std::cin >> command >> temp;
- if (command == 1)
- {
- x_queue.push(temp);
- x_priority_queue.push(temp);
- x_stack.push(temp);
- }
- else
- {
- if (x_queue.size() == 0)
- {
- isQueue = isPQueue = isStack = false;
- continue;
- }
- if (temp != x_queue.front()) isQueue = false;
- if (temp != x_priority_queue.top())
- isPQueue = false;
- if (temp != x_stack.top()) isStack = false;
- x_queue.pop();
- x_priority_queue.pop();
- x_stack.pop();
- }
- }
- int test = isQueue + isPQueue * 2 + isStack * 4;
- switch (test)
- {
- case 0:
- std::cout << "impossible" << std::endl;
- break;
- case 1:
- std::cout << "queue" << std::endl;
- break;
- case 2:
- std::cout << "priority queue" << std::endl;
- break;
- case 4:
- std::cout << "stack" << std::endl;
- break;
- default:
- std::cout << "not sure" << std::endl;
- break;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement