您的位置:首页 > 产品设计 > UI/UE

STL UVA 11995 I Can Guess the Data Structure!

2015-12-07 18:18 441 查看
题目传送门

题意:训练指南P186

分析:主要为了熟悉STL中的stack,queue,priority_queue,尤其是优先队列从小到大的写法

#include <bits/stdc++.h>
using namespace std;

int main(void)	{
int n;
while (scanf ("%d", &n) == 1)	{
stack<int> sta;
queue<int> que;
priority_queue<int, vector<int>, less<int> > pque;
bool flag1 = true, flag2 = true, flag3 = true;
for (int op, x, y, i=1; i<=n; ++i)	{
scanf ("%d%d", &op, &x);
if (op == 1)	{
sta.push (x);	que.push (x);	pque.push (x);
}
else	{
if (sta.empty ())	flag1 = false;
else	{
y = sta.top ();	sta.pop ();
if (y != x)	flag1 = false;
}
if (que.empty ())	flag2 = false;
else	{
y = que.front ();	que.pop ();
if (y != x)	flag2 = false;
}
if (pque.empty ())	flag3 = false;
else	{
y = pque.top ();	pque.pop ();
if (y != x)	flag3 = false;
}
}
}
if (!flag1 && !flag2 && !flag3)	puts ("impossible");
else if ((flag1 && flag2) || (flag1 && flag3) || (flag2 && flag3))	puts ("not sure");
else if (flag1)	puts ("stack");
else if (flag2)	puts ("queue");
else	puts ("priority queue");
}

return 0;
}


  
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: