社区讨论

40pts求调QAQ

P9518queue参与者 2已保存回复 4

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
4 条
当前快照
1 份
快照标识符
@lo1vg7ah
此快照首次捕获于
2023/10/23 03:38
2 年前
此快照最后确认于
2023/11/03 04:08
2 年前
查看原帖
5AC,4WA,2RE,1TLE
QAQ
CPP
#include<bits/stdc++.h>
using namespace std;
int n,fl;string s,t;
map<string,int>m;
deque<string>v,e;
int main(){
	cin>>n;
	for(int i=1;i<=n;i++){
		cin>>s;
		if(s=="start"){
			if(!v.size()){
				cout<<"Error\n";
				continue;
			}
			if(!fl){
				fl=1;
				for(int i=0;i<min(2,(int)(v.size()));i++){
					e.push_back(v[i]);
					cout<<e[i]<<' ';
				}
				cout<<endl;
				continue;
			}
			v.erase(v.begin(),v.begin()+e.size());
			for(int i=0;i<e.size();i++)v.push_back(e[i]);
			e.clear();
			for(int i=0;i<min(2,(int)(v.size()));i++){
				e.push_back(v[i]);
				cout<<e[i]<<' ';
			}
			cout<<endl;
			continue;
		}
		cin>>t;
		if(s=="arrive"){
			if(m[t]==1){
				cout<<"Error\n";
				continue;
			}
			else{
				v.push_back(t);
				m[t]=1;
				cout<<"OK\n";
				continue;
			}
		}
		if(s=="leave"){
			if(((e[0]==t||e[1]==t)&&fl)||m.count(t)==0){
				cout<<"Error\n";
				continue;
			}
			else{
				v.erase(remove(v.begin(),v.end(),t));
				m[t]=0;
				cout<<"OK\n";
				continue;
			}
		}
	}
	return 0;
}

回复

4 条回复,欢迎继续交流。

正在加载回复...