10pts
  • 板块P9518 queue
  • 楼主S_Z_Xcoco
  • 当前回复1
  • 已保存回复1
  • 发布时间2023/8/13 16:10
  • 上次更新2023/11/3 04:04:58
查看原帖
10pts
918508
S_Z_Xcoco楼主2023/8/13 16:10
#include<bits/stdc++.h>
#include<iostream>
using namespace std;
typedef long long ll;
ll n,b[10001],c[10001];
queue<char>s;
queue<char>s1;
inline ll read(){
	ll k=0;char ch=getchar();
	while(!isdigit(ch))ch=getchar();
	while(isdigit(ch))k=(k<<1)+(k<<3)+(ch^48),ch=getchar();
	return k;
}
int main(){
	ios::sync_with_stdio(0);
	cin.tie(0);
	cout.tie(0);
	n=read();
	for(ll i=1;i<=n;i++){
//		for(ll j=1;j<=s1.size();j++){
//			cout<<s1.front();
//			char x=s1.front();
//			s1.pop();
//			s1.push(x);
//		}
//		cout/*<<s1.front()*/<<endl;
		string ss;
		getline(cin,ss);
		if(ss=="start"&&s.empty()){
			cout<<"Error"<<'\n';
			continue;
		}
		if(ss=="start"){
			if(s.size()==1){
				bool b=0;
				if(!s1.empty()){
					b=1;
					s.push(s1.front());
					s1.pop();
				}
				if(!s1.empty()){
					s.push(s1.front());
					s1.pop();
				}
				cout<<s.front();
				c[s.front()]=1;
				s1.push(s.front());
				s.pop();
				if(b==1){
					cout<<" "<<s.front();
					c[s.front()]=1;
					s1.push(s.front());
					s.pop();
				}
				cout<<'\n';
			}
			else{
				if(!s1.empty()){
					s.push(s1.front());
					s1.pop();
				}
				if(!s1.empty()){
					s.push(s1.front());
					s1.pop();
				}
				char x=s.front(),y;
				cout<<x<<" ";
				c[x]=1;
				s.pop();
				cout<<s.front()<<'\n';
				c[s.front()]=1;
				y=s.front();
				s.pop();
				s1.push(x);
				s1.push(y);
			}
			continue;
		}
		if(ss[0]=='a'){
			if(b[int(ss[7])]==0&&c[ss[7]]==0){s.push(ss[7]);b[int(ss[7])]=1;cout<<"OK"<<'\n';}
			else cout<<"Error"<<'\n';
			continue;
		}
		if(ss[0]='l'){
			if(b[ss[6]]==1&&c[ss[6]]==0){
				for(ll j=1;j<=s.size();j++){
					if(s.front()==ss[6]){
						s.pop();
						continue;
					}
					char x=s.front();
					s.pop();s.push(x);
				}
				b[ss[6]]=0;
				cout<<"OK"<<"\n";
			}
			else cout<<"Error"<<"\n";
		}
	}
	return 0;
}
2023/8/13 16:10
加载中...