题目:
#include<bits/stdc++.h>
using namespace std;
int main(){
ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
int m;
cin>>m;
queue<string> V,N;
while(m--){
string op;
cin>>op;
//判断是否为来到窗口
//IN情况,推入name
if(op=="IN") {
string name,q;
cin>>name>>q;
if(q=="V"){
V.push(name);
}
else{
N.push(name);
}
}
//out情况,弹出name
else{
string q;
cin>>q;
if(q=="V"){
V.pop();
}
else{
N.pop();
}
}
}
//输出VIP窗口name
while(V.size()){
cout<<V.front()<<"\n";
V.pop();
}
//输出普通窗口name
while(N.size()){
cout<<N.front()<<"\n";
N.pop();
}
return 0;
}
- 每次都会弹出,队列虽然是一种线性结构但它是不能遍历的
整体思路:
- 判断离开,还是来到
- 进一步判断VIP还是普通
- 得到要输出的顺序