MnZn求助简单模拟题
查看原帖
MnZn求助简单模拟题
481527
AC_CSP楼主2022/11/12 20:29

悬赏2个关注

40pts\text{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;
}
2022/11/12 20:29
加载中...