題目簡單說明:===============================================================================
我們要模擬一個特別的隊列(Queue),叫做「Team Queue」,它和普通的隊列有些不同。
在這個隊列中,每個元素(例如一個人)都屬於一個團隊(Team)。當一個元素進入隊列時,我們要先檢查這個人的團隊中是否已經有人在隊列裡了。
如果這個人的隊友已經在隊列裡,那麼這個人就會排在隊友的後面。
如果這個人的隊友還不在隊列裡,那麼這個人就會直接排在隊列的最後面。
當我們從隊列中移除元素時,和普通隊列一樣,總是移除排在最前面的那個元素。
輸入資料:
每組測試資料的第一行是整數t,表示有幾個團隊(Team)。
每個團隊會用一行來描述,首先是一個整數n,表示這個團隊有幾個成員,接下來是這個團隊的n個成員的編號。
接下來是若干個指令:
ENQUEUE x:把成員x加入隊列。
DEQUEUE:從隊列中移除排在最前面的成員,並輸出這個成員的編號。
STOP:結束這組測試資料的輸入。
輸出要求:
對於每組測試資料,先輸出 "Scenario #k"(其中k是測試資料的編號)。
然後,對於每個 DEQUEUE 指令,輸出被移除的成員編號。
每組測試資料結束後,輸出一個空白行。
簡單舉例:
如果你有三個團隊:
第一個團隊有兩個成員:5 和 10。
第二個團隊有三個成員:1、2 和 3。
第三個團隊有一個成員:4。
如果你按照以下順序執行指令:
ENQUEUE 5
ENQUEUE 1
ENQUEUE 2
ENQUEUE 10
DEQUEUE
那麼隊列的狀態會是:
5 進入隊列,現在隊列是 [5]。
1 進入隊列,現在隊列是 [5, 1]。
2 因為 1 是他的隊友,所以他會排在 1 的後面,現在隊列是 [5, 1, 2]。
10 是 5 的隊友,所以他會排在 5 的後面,現在隊列是 [5, 10, 1, 2]。
最後,DEQUEUE 移除 5,現在隊列是 [10, 1, 2],並且輸出 5。