【链接】 我是链接,点我呀:)
【题意】
【题解】
用两个队列模拟就好。 记录某个队在不在队列里面。 模拟【错的次数】
在这里输入错的次数【反思】
在这里输入反思【代码】
#include <bits/stdc++.h>
using namespace std;
const int N = 1e3;
int t;
queue <int> team[N+10];
queue <int> dl;
map <int,int> dic;
bool inq[N+10];
int main()
{
//freopen("F:\rush.txt","r",stdin);
int kase = 0;
while (~scanf("%d",&t) && t)
{
printf("Scenario #%d
",++kase);
for (int i = 1;i <= N;i++) while (!team[i].empty()) team[i].pop();
while (!dl.empty()) dl.pop();
for (int i = 1;i <= N;i++) inq[i] = false;
dic.clear();
for (int i = 1;i <= t;i++)
{
int num;
scanf("%d",&num);
for (int j = 0;j < num;j++)
{
int x;
scanf("%d",&x);
dic[x] = i;
}
}
string s1;
while (cin >> s1)
{
if (s1[0]=='S') break;
if (s1[0]=='E')
{
int x;
scanf("%d",&x);
int b = dic[x];
if (inq[b]==false)
{
inq[b] = true;
dl.push(b);
}
team[b].push(x);
}else
{
int x = dl.front();
printf("%d
",team[x].front());
team[x].pop();
if (team[x].empty())
{
dl.pop();
inq[x] = false;
}
}
}
puts("");
}
return 0;
}