題目連結:
題目大意:
每列開頭給定一字元,其只會是「I」或是「D」,前者會再輸入一數字 a (1 ≦ a ≦ 100),代表要插入一個新數字 a 進去到堆積(Heap)裡、後者則代表查詢並刪除堆積中的最大值。
請根據每筆查詢(即指令 D),輸出當前最大值。
範例輸入:
I 2
I 9
D
I 11
I 5
D
I 7
I 6
D
範例輸出:
9
11
7
解題思維:
堆積的定義以及建立方式參見
這題。當然,也可以直接偷懶使用內建的之容器(如 C++ 之優先佇列,即priority_queue)。
此次分享到此為止,如有任何更加簡潔的想法或是有說明不清楚之地方,也煩請各位大大撥冗討論。