Description
给定序列,求 (k) 轮冒泡排序后的结果。
Solution
每个数字最多往前挪 (k) 步,因此用优先队列维护即可。
#include <bits/stdc++.h>
using namespace std;
signed main()
{
priority_queue<int> q;
int n,k,x;
cin>>n>>k;
for(int i=1;i<=k;i++) cin>>x, q.push(-x);
for(int i=k+1;i<=n;i++) cin>>x, q.push(-x), cout<<-q.top()<<endl, q.pop();
for(int i=1;i<=k;i++) cout<<-q.top()<<endl, q.pop();
}