Advertisement
Guest User

Untitled

a guest
Oct 22nd, 2019
70
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.23 KB | None | 0 0
  1. #include <algorithm>
  2. #include <iostream>
  3. #include <queue>
  4. #include <stack>
  5.  
  6. int main()
  7. {
  8. int temp{};
  9. int command{};
  10. int max{};
  11.  
  12. while (std::cin >> max)
  13. {
  14. std::queue<int> x_queue{};
  15. std::priority_queue<int> x_priority_queue{};
  16. std::stack<int> x_stack{};
  17. bool isQueue{true}, isPQueue{true}, isStack{true};
  18.  
  19. for (int i = 0; i < max; i++)
  20. {
  21. std::cin >> command >> temp;
  22. if (command == 1)
  23. {
  24. x_queue.push(temp);
  25. x_priority_queue.push(temp);
  26. x_stack.push(temp);
  27. }
  28.  
  29. else
  30. {
  31. if (x_queue.size() == 0)
  32. {
  33. isQueue = isPQueue = isStack = false;
  34. continue;
  35. }
  36.  
  37. if (temp != x_queue.front()) isQueue = false;
  38.  
  39. if (temp != x_priority_queue.top())
  40. isPQueue = false;
  41.  
  42. if (temp != x_stack.top()) isStack = false;
  43.  
  44. x_queue.pop();
  45. x_priority_queue.pop();
  46. x_stack.pop();
  47. }
  48. }
  49.  
  50. int test = isQueue + isPQueue * 2 + isStack * 4;
  51.  
  52. switch (test)
  53. {
  54. case 0:
  55. std::cout << "impossible" << std::endl;
  56. break;
  57. case 1:
  58. std::cout << "queue" << std::endl;
  59. break;
  60. case 2:
  61. std::cout << "priority queue" << std::endl;
  62. break;
  63. case 4:
  64. std::cout << "stack" << std::endl;
  65. break;
  66. default:
  67. std::cout << "not sure" << std::endl;
  68. break;
  69. }
  70. }
  71. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement