# 題目

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();
            }
        }
    }  
}
更新於 閱讀次數 次