悬赏2个关注
40pts
#include<bits/stdc++.h>
using namespace std;
const int N=1e3+7;
int n;
string opt;
map<string,bool> mp;
map<string,int> w;
string name,name2;
string b[N];
int cnt;
int main(){
cin>>n;
while(n--){
cin>>opt;
if(opt=="touch"){
cin>>name;
if(!mp[name]){
b[++cnt]=name;
w[name]=cnt;
mp[name]=1;
}
}
if(opt=="rm"){
cin>>name;
if(mp[name]){
for(int i=w[name];i<=cnt;i++)
b[i]=b[i+1];
cnt--;
mp[name]=0;
}
}
if(opt=="ls"){
for(int i=1;i<=cnt;i++)
cout<<b[i]<<"\n";
}
if(opt=="rename"){
cin>>name>>name2;
if(mp[name]&&!mp[name2]){
mp[name2]=1,mp[name]=0;
w[name2]=w[name];
b[w[name]]=name2;
}
}
}
return 0;
}