社区讨论
40pts求调,HACK数据已过
P9518queue参与者 2已保存回复 2
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 2 条
- 当前快照
- 1 份
- 快照标识符
- @m0grd9hh
- 此快照首次捕获于
- 2024/08/30 21:37 2 年前
- 此快照最后确认于
- 2025/11/04 21:59 4 个月前
rt
#1 #2 #5 #6 AC,其余全WA
CPP#include <bits/stdc++.h>
using namespace std;
map<string,bool> mp;//正在游玩的人
map<string,bool> dl;//队列中的人
map<string,int> cs;//出现的次数
queue<string> q,yw;//q:全体队列 yw:游玩队列
int main()
{
ios::sync_with_stdio(false);
cin.tie(0),cout.tie(0);
int n;
cin>>n;
for(int kk=1;kk<=n;kk++){
string s;
cin>>s;
if(s=="start"){
while(!yw.empty()){
string t=yw.front();
if(dl[t]>=1) mp[t]=0;
q.push(t);
yw.pop();
}
int k=1,f=0;
while(!q.empty()&&k<=2){
string ss=q.front();
if(dl[ss]==0||mp[ss]>=1||(cs[ss]>1&&mp[ss]>=1)){
q.pop();
mp[ss]=0;
cs[ss]--;
continue;
}
else{
cout<<ss<<' ';
f=1;
mp[ss]=1;
q.pop();
yw.push(ss);
k++;
}
}
if(f==0) cout<<"Error";
cout<<"\n";
}
else if(s=="arrive"){
string ss;
cin>>ss;
if(dl[ss]>=1||mp[ss]>=1) cout<<"Error\n";
else{
cs[ss]++;
dl[ss]=1;
q.push(ss);
cout<<"OK\n";
}
}
else{
string ss;
cin>>ss;
if(mp[ss]>=1||dl[ss]==0) cout<<"Error\n";
else{
dl[ss]=0;
cout<<"OK\n";
}
}
}
return 0;
}
回复
共 2 条回复,欢迎继续交流。
正在加载回复...