範例程式碼 uva11995
//uva11995
#include <iostream>
#include <stack>
#include <queue>
using namespace std;
int main() {
int n;
while (cin >> n) {
int i, ins, num;
int isStk = 1, isQue = 1, isPriQue = 1;
stack<int> myStk;
queue<int> myQue;
priority_queue<int> myPriQue;
for (i = 0; i < n; i++) {
cin >> ins >> num;
if (ins == 1) {
myStk.push(num);
myQue.push(num);
myPriQue.push(num);
}
else if (ins == 2) {
if (myStk.empty() || myStk.top() != num)
isStk = 0;
if (myQue.empty() || myQue.front() != num)
isQue = 0;
if (myPriQue.empty() || myPriQue.top() != num)
isPriQue = 0;
if (!myStk.empty())
myStk.pop();
if (!myQue.empty())
myQue.pop();
if (!myPriQue.empty())
myPriQue.pop();
}
}
if (isStk + isQue + isPriQue > 1)
cout << "not sure" << endl;
else if (isStk == 1)
cout << "stack" << endl;
else if (isQue == 1)
cout << "queue" << endl;
else if (isPriQue == 1)
cout << "priority queue" << endl;
else
cout << "impossible" << endl;
}
return 0;
}