STL queue:男孩被绑架了!

题目描述

男孩被绑架了!

他非常想念他的母亲,现在非常害怕。你想象不出他被关在的房间有多黑,这么穷吗?.

作为一个聪明的ACboy,你想把ACboy从怪物的迷宫里救出来,但是当你来到迷宫的门口时,怪物说:“我听说你很聪明,但是如果不能解决我的问题,你会和ACboy一起死。”

怪物的问题显示在墙上:每个问题的第一行是一个整数N(命令的数目),一个单词“FIFO”或“FILO”。(你很高兴,因为你知道“FIFO”代表“先进先出”,“FILO”代表“先进先出”)。接下来的N行中,每行是“IN M”或“OUT”(M表示整数)。而一个问题的答案是一道门,所以如果你想拯救ACboy,请仔细回答这个问题

输入

第一行有一个整数,表示测试用例的数量。下面描述了每个子问题的输入。

输出

对于每个“OUT”命令,您应该根据单词是“FIFO”或“FILO”输出一个整数,如果没有任何整数,则输出一个单词“None”。

样例

输入

4
4 FIFO
IN 1
IN 2
OUT
OUT
4 FILO
IN 1
IN 2
OUT
OUT
5 FIFO
IN 1
IN 2
OUT
OUT
OUT
5 FILO
IN 1
IN 2
OUT
IN 3
OUT

输出

1
2
2
1
1
2
None
2
3

题解

简单题目,结合题意和例子,可以自己推测出来,这里就直接上代码啦。

#include<bits/stdc++.h>
using namespace std;
queue<int>dk;
stack<int>t1;
int main()
{
	int n,m,a;
	string s,s1;
	cin>>n;
	while(n--)
	{
		cin>>m;
		cin>>s;
		if(s=="FIFO")
		{
			for(int i=1;i<=m;i++)
			{
			cin>>s1;
			if(s1=="IN")
			{
				cin>>a;
				dk.push(a);
			}
			if(s1=="OUT")
			{
				if(!dk.empty())
				{
					cout<<dk.front()<<endl;
					dk.pop();
				}
				else
				cout<<"None"<<endl;
			}
		    }
		}
		else
		if(s=="FILO")
		{
			for(int i=1;i<=m;i++)
			{
				cin>>s1;
				if(s1=="IN")
				{
					cin>>a;
					t1.push(a);
				}
				if(s1=="OUT")
				{
					if(!t1.empty())
					{
						cout<<t1.top()<<endl;
						t1.pop();
					}
					else
					cout<<"None";
				}
			}
		}
	}
	return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值