题解:用STL 维护即可
#include<cstring>
#include<stack>
#include<queue>
#include<cstdio>
#include<iostream>
using namespace std;
stack<int> s;
queue<int> q;
int Cas,n,a;
//vector<int> v;
int b[100005];
char str[10];
int main(){
// freopen("input.in","r",stdin);
scanf("%d",&Cas);
for(int cas=1;cas<=Cas;cas++){
scanf("%d",&n);
bool f_1=0;bool f_2=0;
for(int i=1,x;i<=n;i++){
//cin>>str;
scanf("%s",str);
if(str[1]=='u'){
scanf("%d",&x);
q.push(x);
s.push(x);
}
if(str[1]=='o'){
if(q.empty()){
f_1=1;
}else{
q.pop();
}
if(s.empty()){
f_2=1;
}else s.pop();
}
}
if(f_1) {
printf("error\n");
while(!q.empty()) q.pop();
}
else {
while(!q.empty()){
printf("%d ",q.front());
q.pop();
}
printf("\n");
}
if(f_2){
printf("error\n");
while(!s.empty()) s.pop();
}else{
int cnt=0;
while(!s.empty()){
// v.push_back(s.top());
b[++cnt]=s.top();
s.pop();
}
for(int i=cnt;i>=1;i--){
printf("%d ",b[i]);
}
printf("\n");
// v.clear();
}
}
return 0;
}