uva 11995 I Can Guess the Data Structure!

来源:互联网 发布:js 不等于空字符串 编辑:程序博客网 时间:2024/06/05 02:38

水题一道,做着玩

#include <stdio.h>#include <stack>#include <queue>using namespace std;int main(void){int n, i;int oper, data;queue<int> q;priority_queue<int> pq;stack<int> s;bool pq_possible, q_possible, s_possible;int count;//freopen("input.dat", "r", stdin);while(scanf("%d",&n) != EOF){while(!s.empty()) s.pop();while(!pq.empty()) pq.pop();while(!q.empty()) q.pop();pq_possible = q_possible = s_possible = true;for(i=1; i<=n; i++){scanf("%d %d", &oper, &data);if(1 == oper){if(s_possible)s.push(data);if(q_possible)q.push(data);if(pq_possible)pq.push(data);}else{if(s_possible){if(!s.empty()){if(s.top() == data){s.pop();}else{s_possible = false;}}else{s_possible = false;}}if(pq_possible){if(!pq.empty()){if(pq.top() == data){pq.pop();}else{pq_possible = false;}}else{pq_possible = false;}}if(q_possible){if(!q.empty()){if(q.front() == data){q.pop();}else{q_possible = false;}}else{q_possible = false;}}}}count = 0;if(s_possible)count ++;if(pq_possible)count ++;if(q_possible)count ++;if(count >= 2){printf("not sure\n");}else{if(count == 0){printf("impossible\n");}else{if(s_possible){printf("stack\n");}if(pq_possible){printf("priority queue\n");}if(q_possible){printf("queue\n");}}}}return 0;}


0 0