题目描述
男孩被绑架了!
他非常想念他的母亲,现在非常害怕。你想象不出他被关在的房间有多黑,这么穷吗?.
作为一个聪明的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;
}