2017-06-12 13 views
-2

私はこれを約1時間デバッグしていますが、間違いを見つけることができません。UVAのランタイムエラー11995

ここに私のコードです。

#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

RUNTIMEエラーが発生します。 –

答えて

-1

まあ、間違いを見つけました。

私の間違いは、スタック、キュー、およびpqが空であってもそれをポップしたことです。