#41659: 題目說明


AtwoodYen (帥剛剛)

學校 : 不指定學校
編號 : 110732
來源 : [59.120.140.251]
最後登入時間 :
2024-11-10 14:34:36
e564. 00540 - Team Queue -- UVA | From: [59.120.140.251] | 發表日期 : 2024-08-15 17:06

題目簡單說明:===============================================================================

我們要模擬一個特別的隊列(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。

 
ZeroJudge Forum