#include<bits/stdc++.h>
#define endl '\n'//题目数据较大需要预处理掉endl
using namespace std;
priority_queue<int, vector<int>, greater<int>>q;//大根堆
int main() {
ios::sync_with_stdio(0);
cin.tie(0);//题目数据较大需要关闭同步流
int n, k;
cin >> n >> k;
for(int i = 1; i <= n; i++)
{
int x;
cin >> x;
q.push(x);
if(q.size() > k) q.pop();//始终保持堆中的容量为k,top元素即为第k大数
if(q.size() < k) cout << -1 << endl;//不足k的时候无第k大值,输出-1
else cout << q.top() << endl;
}
return 0;
}
B - 第k大数
最新推荐文章于 2024-07-17 23:24:38 发布