你的老師有天對著全班說:「沒有人會記住第二名,大家只知道第一名。」
你很不服氣,於是向老師發起挑戰,你認為你可以記住第一名以外的人。
為了達成這個挑戰,你需要依序處理 q 筆查詢,以下我們定義 S 為多重集合(multiset)。
第一類:將數值 v 加入 S 中。
第二類:輸出 S 中第 k 小的值,並將它從 S 中刪除,若有重複的數字僅刪除其中一個,特別地,如果 S 的大小未滿 k,請輸出 -1。
注意,S 一開始為空,且 S 中允許岀現相同的元素。
輸入第一行有兩個正整數,分別為 q 和 k,意義如題中所述。
接下來有 q 行整數,每行有 b 個整數,第一個數為 a。
若 a=1 ,則 b=2,第二個數 v 代表要加進去的整數,即題目中第一類查詢。
若 a=2 ,則 b=1,即題目中第二類查詢,保證第二類查詢至少有一筆。
• 1 ≤ q ≤ 105
• 1 ≤ k ≤ 105
• 1 ≤ v ≤ 109
對於每一筆第二類查詢,輸出一行整數。
#test input 1: 3 2 1 7122 1 7111 2 #test input 2: 3 1 1 7122 2 2 #test input 3: 5 2 1 7122 1 7122 1 71227122 2 2
#test output 1: 7122 #test output 2: 7122 -1 #test output 3: 7122 71227122
binary search, data structures (CF 1700)
編號 | 身分 | 題目 | 主題 | 人氣 | 發表日期 |
沒有發現任何「解題報告」 |