শনিবার, ২৮ জানুয়ারী, ২০১৭

UVA 11995 I Can Guess the Data Structure! Solution

#include <cstdio>
#include <iostream>
#include <stack>
#include <queue>
using namespace std;
main()
{
    long  n;
    while(scanf("%ld",&n)!=EOF)
    {
        long a,b,i,st=1,qu=1,pq=1;
        stack<long>s;
        queue<long>q;
        priority_queue<long>pq1;
        for(i=1;i<=n;i++)
        {
            scanf("%ld%ld",&a,&b);
            if(a==1)
            {
                if(st!=0)
                {
                    s.push(b);
                }
                if(qu!=0)
                {
                    q.push(b);
                }
                if(pq!=0)
                {
                    pq1.push(b);
                }
            }
            else if(a==2)
            {
                if(s.size()!=0&&s.top()==b)
                {
                    s.pop();
                }
                else
                    st=0;
                if(q.size()!=0&&q.front()==b)
                {
                    q.pop();
                }
                else
                    qu=0;
                if(pq1.size()!=0&&pq1.top()==b)
                {
                    pq1.pop();
                }
                else
                    pq=0;
            }
        }
        if(st==1&&qu==0&&pq==0)
            printf("stack\n");
        else if(st==0&&qu==1&&pq==0)
            printf("queue\n");
        else if(st==0&&qu==0&&pq==1)
            printf("priority queue\n");
        else if(st==0&&qu==0&&pq==0)
            printf("impossible\n");
        else
            printf("not sure\n");
    }
}

কোন মন্তব্য নেই:

একটি মন্তব্য পোস্ট করুন

Factorization with prime Sieve

vector <int> prime; char sieve[1000009]; int N=1000009; void primeSieve ( ) { sieve[0] = sieve[1] = 1; prime.push_back(2); ...