优先队列自动排序
优先队列是堆,复杂度 期望是 O(nlgn)
#include<iostream>
#include<cstdio>
#include<algorithm>
#include<queue>
using namespace std;
int n, m;
priority_queue<int, vector<int>, less<int> > qu;
void init() {
scanf("%d %d", &n, &m);
int x;
for(int i = 0; i < n; ++i) {
scanf("%d", &x);
qu.push(x);
}
}
void solve() {
for(int i = 1; i < m; ++i) {
int t = qu.top(); qu.pop();
if(qu.empty()) { printf("%d\n", t); return ;}
printf("%d ", t);
}
int t = qu.top(); qu.pop();
printf("%d\n", t);
}
int main() {
init();
solve();
return 0;
}