#include<bits/stdc++.h>
using namespace std;
string datas[10005];
map<string,int> vis;//vis 记录人员状态1已经进入 0 离开
map<string,bool> in_ans;//记录人员是否违法,true 人员违法 false 不违法
int main(){
ios::sync_with_stdio(false);
int n,k=0;
cin>>n;
while(n--){
string s,opt;
cin>>s>>opt;
if(in_ans[s])continue;//已经记录违法的人员不需要重复判断
if(opt=="enter"){
if(vis[s]!=0){//新进入的人状态必须是 未进入状态
datas[k++]=s;
in_ans[s]=true;
}else{
vis[s]=1;
}
}else{
if(vis[s]!=1){//离开人员状态必须是 已经进入状态
datas[k++]=s;
in_ans[s]=true;
}else{
vis[s]=0;
}
}
}
map<string,int>::iterator i;//最后所有人的状态必须是离开
for(i=vis.begin();i!=vis.end();i++)
if(i->second!=0&&!in_ans[i->first]) datas[k++]=i->first;
sort(datas,datas+k);
for(int i=0;i<k;i++){
cout<<datas[i]<<" ";
}
cout<<endl;
return 0;
}
评论区