首页 > 其他 > 详细

STL UVA 11995 I Can Guess the Data Structure!

时间:2015-12-07 20:15:28      阅读:109      评论:0      收藏:0      [点我收藏+]

 

题目传送门

题意:训练指南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;
}

  

STL UVA 11995 I Can Guess the Data Structure!

原文:http://www.cnblogs.com/Running-Time/p/5026805.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!