UVa 11991 I Can Guess The Data Structure(STL基础)

来源:互联网 发布:qq飞车高改天启数据 编辑:程序博客网 时间:2024/06/10 09:00

用stl中的3种数据结构依次去试,注意取之前要判断容器内是否是空的。


代码:

#include <cstdio>#include <cstring>#include <iostream>using namespace std;#include <queue>#include <stack>queue <int> Q;stack <int> S;priority_queue<int> P;void init(){while(!Q.empty()) Q.pop();while(!S.empty()) S.pop();while(!P.empty()) P.pop();}int main(){int N;while(~scanf("%d",&N)){init();int a=1,b=1,c=1;for(int i=1;i<=N;i++){int C,n;scanf("%d%d",&C,&n);if(C==1){Q.push(n);S.push(n);P.push(n);}else {if(!a||Q.empty()||Q.front()!=n) a=0;else Q.pop();if(!b||S.empty()||S.top()!=n) b=0;else S.pop();if(!c||P.empty()||P.top()!=n) c=0;else P.pop();}}int res=a+b+c;if(res==0) printf("impossible\n");else if(res>1) printf("not sure\n");else{if(a) printf("queue\n");else if(b) printf("stack\n");else printf("priority queue\n");}}return 0;}

0 0