思路

简单题,用栈,队列,优先队列直接模拟即可

代码

#include <cstdio>
#include <algorithm>
#include <cstring>
#include <queue>
#include <stack>
using namespace std;
queue<int> q;
stack<int> S;
priority_queue<int> pq;
int n;
int main(){
while(scanf("%d",&n)==1){
while(!q.empty())
q.pop();
while(!S.empty())
S.pop();
while(!pq.empty())
pq.pop();
bool isS=true,isq=true,ispq=true;
for(int i=1;i<=n;i++){
int opt,x;
scanf("%d %d",&opt,&x);
if(opt==1){
q.push(x);
pq.push(x);
S.push(x);
}
else{
if(q.empty())
isq=false;
if(pq.empty())
ispq=false;
if(S.empty())
isS=false;
if(isq){
int t=q.front();
if(t!=x)
isq=false;
q.pop();
}
if(ispq){
int t=pq.top();
if(t!=x)
ispq=false;
pq.pop();
}
if(isS){
int t=S.top();
if(t!=x)
isS=false;
S.pop();
}
}
}
if((!ispq)&&(!isq)&&(!isS))
printf("impossible\n");
else if((ispq)&&(!isq)&&(!isS))
printf("priority queue\n");
else if((!ispq)&&(isq)&&(!isS))
printf("queue\n");
else if((!ispq)&&(!isq)&&(isS))
printf("stack\n");
else
printf("not sure\n");
}
return 0;
}

最新文章

  1. 学习AOP之透过Spring的Ioc理解Advisor
  2. css深入理解z-index
  3. (小常识)Dictionary的遍历
  4. js导入导出excel
  5. The vboxdrv kernel module is not loaded
  6. HDU 1078 FatMouse and Cheese(记忆化搜索)
  7. 转:从三层架构到MVC-MVP
  8. android之硬件访问服务框架
  9. WPF的消息机制
  10. XHTML 与 HTML 之间的差异
  11. Sencha Extjs4.2 皮肤制作
  12. Ext viewport的渲染
  13. 如何让一个DIV水平,垂直方向都居中于浏览器?
  14. python django基础五 ORM多表操作
  15. 提取IPv6地址的编码信息
  16. Python 私有
  17. Netstat Commands for Linux Network Management
  18. luoguP1080 国王游戏 (贪心+高精度)
  19. Oracle学习笔记之三,Oracle 11g数据库的启动与关闭
  20. errorlevel 续2

热门文章

  1. [Educational Round 3][Codeforces 609E. Minimum spanning tree for each edge]
  2. JavaScript——this
  3. javascript 回调 继承
  4. jquery网页倒计时效果,秒杀
  5. Django-- KindEditor 富文本编辑器使用
  6. Elasticsearch学习笔记(三)聚合分析Agg
  7. EasyUI实现分页、搜索、行按钮功能
  8. @Value(&quot;${xxxx}&quot;)注解的配置及使用
  9. VUE—打印(原生态网页打印)
  10. 【Go语言】基本的语法