UVA 11995中的运行时错误

时间:2017-06-12 14:43:28

标签: c++

我现在已经调试了大约一个小时,我似乎无法找到我的错误。

这是我的代码。

#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

1 个答案:

答案 0 :(得分:-1)

好吧,我发现了错误。

我的错误是我弹出了堆栈,队列和pq,即使它是空的。