• 没啥好说,模拟
  • 因为没加EOF而T
  • //#include<bits/stdc++.h>
    #include<iostream>
    #include<cstdio>
    #include<cstring>
    #include<string>
    #include<set>
    #include<vector>
    #include<map>
    #include<stack>
    #include<queue>
    #include<cmath>
    #include<fstream>
    #include<algorithm>
    using namespace std;
    
    #define rep(i,a,n) for(int i=a;i<=n;i++)
    #define per(i,a,n) for(int i=n;i>=a;i--)
    //#define CLR(a) memset(a,sizeof(a),0)
    
    typedef long long ll;
    typedef unsigned long long ull;
    
    const int INF = 0x3f3f3f3f;
    
    const int maxn=1e6+10;
    
    
    
    
    stack<int>sta;
    queue<int>q;
    priority_queue<int>pq;
    int main(){
       // ifstream in;
            //ofstream out;
        //in.open("in.txt");
           // out.open("out.txt");
        int n;
        while(scanf("%d", &n!=EOF)){
       // while(in>>n){
            while(!sta.empty())sta.pop();
            while(!q.empty())q.pop();
            while(!pq.empty())pq.pop();
            int f1=1,f2=1,f3=1;
            rep(i,1,n){
                int cmd,x;
                scanf("%d %d", &cmd, &x);
                //in>>cmd>>x;
                if(cmd==1){
                    if(f1)sta.push(x);
                    if(f2)q.push(x);
                    if(f3)pq.push(x);
                }else{
                    int t1,t2,t3;
                    if(sta.empty())f1=0;
                    if(q.empty())f2=0;
                    if(pq.empty())f3=0;
                    if(f1){
                        t1=sta.top();sta.pop();
                        if(t1!=x)f1=0;
                    }
                    if(f2){
                        t2=q.front();q.pop();
                        if(t2!=x)f2=0;
                    }
                    if(f3){
                        t3=pq.top();pq.pop();
                        if(t3!=x)f3=0;
                    }
                }
            }
            if(f1+f2+f3>1)puts("not sure");
            else if(f1+f2+f3==0)puts("impossible");
            else if(f1==1){
                puts("stack");
            }else if(f2==1){
                puts("queue");
            }else if(f3==1){
                puts("priority queue");
            }
        }
        return 0;
    }

发表评论

邮箱地址不会被公开。 必填项已用*标注