# 題目
zerojudge a164 團體佇列
# 解題思路
目前沒東西...
# 程式碼
#include <bits/stdc++.h> | |
using namespace std; | |
#define Rabbir_Reaper ios::sync_with_stdio(0);cin.tie(0); | |
#define N 1005 | |
int t,Scenario=1; | |
set<int> st[N]; | |
queue<queue<int>> q,_q; | |
bool f(int x,int y){ | |
for(int i=0;i<t;i++){ | |
if(st[i].count(x) && st[i].count(y)) | |
return true; | |
} | |
return false; | |
} | |
int main(){ | |
Rabbir_Reaper | |
while(cin>>t){ | |
if(t==0) break; | |
for(int i=0;i<t;i++) st[i].clear(); | |
for(int i=0;i<t;i++){ | |
int n; | |
cin>>n; | |
for(int j=0,temp;j<n;j++){ | |
cin>>temp; | |
st[i].insert(temp); | |
} | |
} | |
int temp; | |
string s; | |
q=_q; | |
cout<<"Scenario #"<<Scenario++<<'\n'; | |
while(cin>>s){ | |
if(s=="STOP") break; | |
if(s=="ENQUEUE"){ | |
cin>>temp; | |
int size=(int)q.size(); | |
for(int i=0;i<size;i++){ | |
queue<int> buffer; | |
buffer=q.front();q.pop(); | |
if(temp!=-1 && f(buffer.front(),temp)){ | |
buffer.push(temp); | |
temp=-1; | |
} | |
q.push(buffer); | |
} | |
if(temp!=-1){ | |
queue<int> buffer; | |
buffer.push(temp); | |
q.push(buffer); | |
} | |
}else{ | |
queue<int> buffer; | |
buffer=q.front(); | |
while(buffer.empty()){ | |
q.pop(); | |
buffer=q.front(); | |
} | |
cout<<buffer.front()<<'\n'; | |
q.front().pop(); | |
} | |
} | |
} | |
} |