传送门
题目大意
FIFO代表先进先出
FILO代表先进后出
问输出顺序
思路
构造一个栈,一个队列
栈是先进后出,队列先进先出
代码
stack<int>s;
queue<int> q;
int main(){
int t;
cin>>t;
while(t--){
int n;
scanf("%d",&n);
while(!s.empty()){
s.pop();
}
while(!q.empty()){
q.pop();
}
string x;
cin>>x;
if(x=="FIFO"){//q
for(int i=1;i<=n;i++){
string ss;
int tt;
cin>>ss;
if(ss=="IN"){
cin>>tt;
q.push(tt);
}
else{
if(!q.empty()){
tt=q.front();
q.pop();
cout<<tt<<endl;
}
else puts("None");
}
}
}
else{//s
for(int i=1;i<=n;i++){
string ss;
int tt;
cin>>ss;
if(ss=="IN"){
cin>>tt;
s.push(tt);
}
else{
if(!s.empty()){
tt=s.top();
s.pop();
cout<<tt<<endl;
}
else puts("None");
}
}
}
}
}