c700: 壞掉的隊列(queue)
標籤 : stack
通過比率 : 95% (21 人 / 22 人 ) (非即時)
評分方式:
Special

最近更新 : 2018-08-29 09:46

內容

「測資中有若干行輸入,請你實作 queue 的幾種操作:

   push $\color{black}{X(0 \le X < 2^{32})}$: 將 $\color{black}{X}$ 加入隊列

   pop: 輸出隊列最前方的數字並刪除,你可以假設此時隊列不是空的」 

 

小W本來想隨便寫寫交差了事,卻發現 STL 的 queue 壞了!

再看看題目,原來底下附註一行小字:請用兩個 stack 完成這題

於是小W希望你能用以下代號寫一張紙條告訴他該怎麼做。


1: 讀入 push X 並將 X 放到堆疊一

2: 讀入 push X 並將 X 放到堆疊二

3: 讀入 pop ,將堆疊一頂端的元素輸出並刪除

4: 讀入 pop ,將堆疊二頂端的元素輸出並刪除

5: 將堆疊一頂端的元素取出並放至堆疊二

6: 將堆疊二頂端的元素取出並放至堆疊一

如果取出元素時堆疊為空或者讀入 push/pop 的順序與輸入測資不符,你會害小W拿到一個WA。

輸入說明

見題目和範例。

輸出說明

輸出一行你要傳給小W的內容。

範例輸入
push 111
push 222
pop
pop
範例輸出
範例輸出一:
1234

範例輸出二:
12544

範例輸出三:
1143

範例輸出四:
1313

範例輸出五:
1133
測資資訊:
記憶體限制: 512 MB
公開 測資點#0 (14%): 0.6s , <1M
公開 測資點#1 (14%): 0.6s , <1M
公開 測資點#2 (14%): 0.6s , <1M
公開 測資點#3 (14%): 0.6s , <1M
公開 測資點#4 (14%): 0.6s , <1M
公開 測資點#5 (15%): 0.6s , <1M
公開 測資點#6 (15%): 0.6s , <1K
提示 :

輸入至多 100000 行。

以範例輸入而言,範例輸出一、二會拿到AC。

範例輸出三會拿到WA,因為操作4時堆疊二是空的。

範例輸出四也會拿到WA,因為輸入順序是push->push->pop->pop,但是1313的操作分別為push->pop->push->pop。

範例輸出五的操作過程完全合法,但依據先進先出的原則,111應該比222早離開queue,若以1133的方式操作,222將比111早輸出,所以會拿到WA。

 

標籤:
stack
出處:
[編輯:
icube (常數爆炸)
]


編號 身分 題目 主題 人氣 發表日期
15025
tico88612 (Jerry Yang C.H.)
c700
解題報告書
132 2018-09-02 23:00