Advertisement
juanjo12x

UVA_11995_I_Can_Guess

Aug 15th, 2014
236
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.71 KB | None | 0 0
  1. #include <iostream>
  2. #include <cstdio>
  3. #include <algorithm>
  4. #include <cstring>
  5. #include <string>
  6. #include <cctype>
  7. #include <stack>
  8. #include <queue>
  9. #include <list>
  10. #include <vector>
  11. #include <map>
  12. #include <set>
  13. #include <sstream>
  14. #include <stdlib.h>
  15. #include <cmath>
  16. #define FOR(i,A) for(typeof (A).begin() i = (A).begin() ; i != (A).end() ; i++)
  17. #define debug( x ) cout << #x << " = " << x << endl
  18. #define clr(v,x) memset( v, x , sizeof v )
  19. #define all(x) (x).begin() , (x).end()
  20. #define rall(x) (x).rbegin() , (x).rend()
  21. #define TAM 110
  22.  
  23. using namespace std;
  24.  
  25. typedef pair<int,int> ii ;
  26. typedef long long ll ;
  27. typedef long double ld ;
  28. typedef pair<int,ii> pii ;
  29.  
  30. int main() {
  31.     int t,ins,x;
  32.     while(scanf("%d",&t)!=EOF){
  33.         bool isstck=true,isque=true,isprior=true;
  34.         stack<int> s; queue<int> q; priority_queue<int> pq;
  35.         for(int i=0;i<t;i++){
  36.             scanf("%d %d",&ins,&x);
  37.             if(ins==1){
  38.                 if(isstck){
  39.                     s.push(x);
  40.                 }
  41.                 if(isque){
  42.                     q.push(x);
  43.                 }
  44.                 if(isprior){
  45.                     pq.push(x);
  46.                 }
  47.             }else{
  48.                 if (isstck) {
  49.                     if (s.empty() || s.top() != x)
  50.                         isstck = false;
  51.                     else
  52.                         s.pop();
  53.                 }
  54.                 if (isque) {
  55.                     if (q.empty() || q.front() != x)
  56.                         isque = false;
  57.                     else
  58.                         q.pop();
  59.                 }
  60.                 if (isprior) {
  61.                     if (pq.empty() || pq.top() != x)
  62.                         isprior = false;
  63.                     else
  64.                         pq.pop();
  65.                 }
  66.             }
  67.         }
  68.         if(isstck && !isque && !isprior){
  69.             printf("stack\n");
  70.         }else if(!isstck && isque && !isprior){
  71.             printf("queue\n");
  72.         }else if(!isstck && !isque && isprior){
  73.             printf("priority queue\n");
  74.         }else if(!isstck && !isque && !isprior){
  75.             printf("impossible\n");
  76.         }else{
  77.             printf("not sure\n");
  78.         }
  79.     }
  80.     return 0;
  81. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement