ACboy被绑架了!!
他非常想念他的母亲,现在非常害怕。你无法想象他被放进的房间有多暗,那么可怜
:(。
作为一个聪明的ACMer,你想让ACboy摆脱怪物的迷宫。当您到达迷宫的大门时,蒙斯特说:“我听说您很聪明,但是如果不能解决我的问题,您将会和ACboy一起死。”
怪物的问题显示在墙上:
每个问题的第一行是整数N(命令数),以及单词“ FIFO”或“ FILO”。(您非常高兴,因为您知道“ FIFO”代表“先进先出”和“ FILO”表示“先入后出”)
,以及随后的N行,每行均为“ IN M”
而且问题的答案是一扇门,所以如果您想营救ACboy,请仔细回答问题!
输入值
输入包含多个测试用例。
第一行有一个整数,代表测试用例的数量。
并且上面描述了每个子问题的输入。
输出量
对于每个命令“ OUT”,您应该输出一个整数,取决于单词“ FIFO”或“ FILO”,如果没有任何整数,则输出单词“ None”。
.
Sample Input
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
Sample Output
1
2
2
1
1
2
None
2
3
#include<bits/stdc++.h>
using namespace std;
int main()
{
int t,n,temp;
cin>>t;
while(t--)
{
string str,strl;
queue<int>q;//定义一个队列
stack<int>a;//定义一个栈
cin>>n>>str;
for(int i=0;i<n;i++)
{
if(str=="FIFO")//模拟队列操作
{
cin>>strl;//输入“操作名字”
if(strl=="IN")//“输入”操作
{
cin>>temp;//输入一个元素
q.push(temp);//加入到队列尾
}
if(strl=="OUT")//“输出”操作
{
if(q.empty())//若队列为空
cout<<"None"<<endl;
else{
cout<<q.front()<<endl;//输出队首
q.pop();//删除队首
};
}
}
else//模拟栈操作
{
cin>>strl;//输入“操作名字”
if(strl=="IN")//“输入”操作
{
cin>>temp;//输入一个元素
a.push(temp);//加入到栈尾
}
if(strl=="OUT")//“输出”操作
{
if(a.empty())//若栈为空
cout<<"None"<<endl;
else
{
cout<<a.top()<<endl;//输出栈首
a.pop();//删除栈首
}
}
}
}
}
return 0;
}