题目描述
数据流里依次到来 个整数。每读入一个数,输出当前已读入的所有数中第 大的数;若还不足 个,输出 。
维护技巧:用一个小根堆只保留当前最大的 个——堆满了就弹出堆顶(那是保留下来的数里最小的),堆顶恰好始终是第 大。
输入格式
第一行两个整数 、()。
第二行 个整数 (),依次到来。
输出格式
共 行,第 行一个整数:读入前 个数后的第 大;不足 个时为 。
样例
输入:
6 3
5 1 9 3 9 2
输出:
-1
-1
1
3
5
5
读到第 3 个时已读 5、1、9,第 3 大是 1;此后每来一个数,第 3 大跟着变。
数据范围
,。提示:保「前 大」要用小根堆——堆顶最小,超员挤掉它才不冤枉;用大根堆挤堆顶,留下的就成了前 小。