我现在已经调试了大约一个小时,我似乎无法找到我的错误。
这是我的代码。
#include <cmath>
#include <cstdio>
#include <vector>
#include <iostream>
#include <algorithm>
#include <queue>
#include <stack>
#define lol long long
using namespace std;
int main() {
/* Code for UVA 11995 */
lol N;
while(cin >> N){
stack<lol> st;
queue<lol> qu;
priority_queue<lol> pq;
bool _st=true,_qu=true,_pq=true;
lol a,b;
for(lol i=0; i<N; i++){
cin >> a >> b;
if(a==1){
st.push(b);
qu.push(b);
pq.push(b);
}
else{
lol st_=st.top(),qu_=qu.front(),pq_=pq.top();
st.pop(); qu.pop(); pq.pop();
if(b!=st_) _st=false;
if(b!=qu_) _qu=false;
if(b!=pq_) _pq=false;
}
}
if(_st==true && _qu==false && _pq==false) cout << "stack";
else if(_st==false && _qu==true && _pq==false) cout << "queue";
else if(_st==false && _qu==false && _pq==true) cout << "priority queue";
else if(_st==false && _qu==false && _pq==false) cout << "impossible";
else cout << "not sure";
cout << endl;
}
return 0;
}
同样,我似乎无法找到导致运行时错误的那个。
感谢您的帮助! :d
答案 0 :(得分:-1)
好吧,我发现了错误。
我的错误是我弹出了堆栈,队列和pq,即使它是空的。