範例程式碼 uva540
//uva540
#include <cstdio>
#include <iostream>
#include <deque>
#include <cstring>
using namespace std;
int team[1000005];
deque< deque<int> > dq;
deque< deque<int> >::iterator it;
int main(void) {
int t, n, element, x, i, cas = 1;
char cmd[10];
while(scanf("%d", &t) && t) {
memset(team, 0, sizeof(team));
dq.clear();
for(i = 1; i <= t; ++i) {
scanf("%d", &n);
while(n--) {
scanf("%d", &element);
team[element] = i;
}
}
printf("Scenario #%d\n", cas++);
while(scanf("%s", cmd) && strcmp(cmd, "STOP")!=0) {
if(strcmp(cmd, "ENQUEUE") == 0) {
scanf("%d", &x);
for(it = dq.begin(); it != dq.end(); ++it) {
if(team[it->front()] == team[x]) {
it->push_back(x);
break;
}
}
if(it == dq.end()) {
deque<int> tmp;
tmp.push_back(x);
dq.push_back(tmp);
}
}
else if(strcmp(cmd, "DEQUEUE") == 0) {
x = dq.front().front();
if(dq.front().size() == 1) dq.pop_front();
else dq.front().pop_front();
printf("%d\n", x);
}
}
printf("\n");
}
return 0;
}