首页 > 代码库 > UVA 1995 I can guess the structer
UVA 1995 I can guess the structer
模 拟
1 /*by SilverN*/ 2 #include<algorithm> 3 #include<iostream> 4 #include<cstring> 5 #include<cstdio> 6 #include<cmath> 7 #include<vector> 8 #include<queue> 9 #include<stack>10 using namespace std;11 int read(){12 int x=0,f=1;char ch=getchar();13 while(ch<‘0‘ || ch>‘9‘){if(ch==‘-‘)f=-1;ch=getchar();}14 while(ch>=‘0‘ && ch<=‘9‘){x=x*10+ch-‘0‘;ch=getchar();}15 return x*f;16 }17 priority_queue<int>q;18 stack<int>st;19 queue<int>que;20 int n;21 int x,y;22 bool flag_st,flag_qu,flag_pr;23 int main(){24 /* freopen("qu.in","r",stdin);25 freopen("qu.out","w",stdout);*/26 27 while(scanf("%d",&n)!=EOF){28 int i,j;29 flag_pr=flag_qu=flag_st=1;30 while(!q.empty()) q.pop();31 while(!st.empty()) st.pop();32 while(!que.empty()) que.pop();33 for(i=1;i<=n;i++){34 scanf("%d%d",&x,&y);35 if(x==1){36 q.push(y);37 st.push(y);38 que.push(y);39 }40 else{41 if(q.empty() || q.top()!=y)flag_pr=0;42 if(st.empty() || st.top()!=y)flag_st=0;43 if(que.empty() || que.front()!=y)flag_qu=0;44 if(!q.empty())q.pop();45 if(!st.empty()) st.pop();46 if(!que.empty()) que.pop();47 }48 }49 int cnt=0;50 if(flag_st)cnt++; if(flag_pr)cnt++; if(flag_qu)cnt++;51 if(cnt>1){52 printf("not sure\n");53 continue;54 }55 if(flag_st && !flag_pr && !flag_qu)printf("stack\n");56 if(!flag_st && !flag_pr && flag_qu)printf("queue\n");57 if(!flag_st && flag_pr && !flag_qu)printf("priority queue\n");58 if(!flag_st && !flag_pr && !flag_qu)printf("impossible\n");59 }60 return 0;61 }
UVA 1995 I can guess the structer
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。