codepad
[
create a new paste
]
login
|
about
Language:
C
C++
D
Haskell
Lua
OCaml
PHP
Perl
Plain Text
Python
Ruby
Scheme
Tcl
#include<bits/stdc++.h> #define sf scanf #define pf printf using namespace std; int main() { // freopen("input.txt","rt",stdin); // freopen("output.txt","wt",stdout); stack < int > st; queue < int > q; priority_queue < int > pq; int s[42]; int n[1050]; int kase; while(sf("%d",&kase) != EOF) { int ss = 1,qq=1,ppqq = 1,nxt=0,flag =0,mm=0,ff=0,kk=0; s[0] = 0; s[1] = 0; s[2] = 0; for(int j=0; j<kase; j++) { int x,y; sf("%d %d",&x,&y); if(x&1) { st.push(y); q.push(y); pq.push(y); } else { if((st.top() != y) && !ff) { s[0] = 1; ff = 1; } if((q.front() != y) && !mm) { s[1] = 1; mm = 1; } if((pq.top() != y) && !kk) { s[2] = 1; kk=1; } // cout << " TOP VALUES OF STACK " << stk[nxt] << " " << st.top() << " " << n[nxt] << endl; // cout << " TOP VALUES OF Queue " << qu[nxt] << " " << q.front() << " " << n[nxt] << endl; // cout << " TOP VALUES OF PQueue " << pqu[nxt] << " " << pq.top() << " " << n[nxt] << endl; st.pop(); q.pop(); pq.pop(); nxt++; } } if(!s[0] && (s[1] && s[2])) { pf("stack\n"); } else if(!s[1] && (s[0] && s[2])) { pf("queue\n"); } else if(!s[2] && (s[0] && s[1])) { pf("priority queue\n"); } else if((!s[0] && !s[1]) || (!s[1] && !s[2]) || (!s[0] && !s[2])) { pf("not sure\n"); } else if(s[0] && s[1] && s[2]) { pf("impossible\n"); } while(!q.empty() || !pq.empty() || !st.empty()) { if(!q.empty()) { q.pop(); } if(!st.empty()) { st.pop(); } if(!pq.empty()) { pq.pop(); } } } return 0; }
Private
[
?
]
Run code
Submit