[ create a new paste ] login | about

Link: http://codepad.org/ZR5NyQ2N    [ raw code | fork ]

iamyeasin - C++, pasted on Mar 21:
#include<bits/stdc++.h>
#define sf scanf
#define pf printf

using namespace std;


int main()
{
//    freopen("input.txt","rt",stdin);
//    freopen("output.txt","wt",stdout);

    stack < int > st;
    queue < int > q;
    priority_queue < int > pq;

    bool stk[300];
    bool qu[300];
    bool pqu[300];

    int n[1001];

    int kase;
    memset(stk,0,sizeof(stk));
    memset(qu,0,sizeof(qu));
    memset(pqu,0,sizeof(pqu));

    while(sf("%d",&kase) != EOF)
    {
        int ss = 1,qq=1,ppqq = 1,nxt=0,flag =0,mm=0;

        for(int j=0; j<kase; j++)
        {
            int x,y;
//            for(int i=0; i<300; i++)
//            {
//                stk[i] = 0;
//                qu[i] = 0;
//                pqu[i] = 0;
//            }

            sf("%d %d",&x,&y);

            if(x&1)
            {
                st.push(y);
                q.push(y);
                pq.push(y);
            }
            else
            {
                n[nxt] = y;
                if(st.top() != n[nxt] && stk[mm-1])
                {
                    stk[nxt] = 1;
                }

                if(q.front() != n[nxt] && qu[mm-1])
                {
                    qu[nxt] = 1;
                }

                if(pq.top() != n[nxt] && !pqu[mm-1])
                {
                    pqu[nxt] = 1;
                }

                cout << " TOP VALUES OF STACK " << st.top() << " " << n[nxt] << endl;
                cout << " TOP VALUES OF Queue " << q.front() << " " << n[nxt] << endl;
                cout << " TOP VALUES OF PQueue " << pq.top() << " " << n[nxt] << endl;

                st.pop();
                q.pop();
                pq.pop();

                nxt++;mm++;
            }
        }

//        cout<<nxt<<" " << mm <<endl;
        ///for stack
        for(int s=0; s<nxt; s++)
        {
            if(stk[s] != 0) {
                ss=0;
                break;
            }
        }

        ///for queue

        for(int ku =0; ku<nxt; ku++)
        {
            if(qu[ku] != 0){
                qq = 0;
                break;
            }
        }

        for(int pku=0; pku < nxt; pku++)
        {
            if(pqu[pku] != 0)
            {
                ppqq=0;
                break;
            }
        }

        if((ss && qq) || (ss && ppqq) || (qq && ppqq))
        {
            pf("not sure\n");
        }
        else if(ss)
        {
            pf("stack\n");
        }
        else if(qq)
        {
            pf("queue\n");
        }
        else if(ppqq)
        {
            pf("priority queue\n");
        }
        else
        {
            pf("impossible\n");
        }



        while(!q.empty() || !pq.empty() || !st.empty())
        {
            if(!q.empty())
            {
                q.pop();
            }

            if(!st.empty())
            {
                st.pop();
            }
            if(!pq.empty())
            {
                pq.pop();
            }
        }
    }


    return 0;
}


Create a new paste based on this one


Comments: