#include <iostream>
#include <queue>
#include <list>
using namespace std;
int main()
{
priority_queue<int,vector<int> > pq;
vector <int> p;
p.push_back(3);
p.push_back(3);
p.push_back(3);
p.push_back(3);
p.push_back(5);
p.push_back(5);
p.push_back(5);
p.push_back(5);
p.push_back(1);
p.push_back(8);
p.push_back(8);
p.push_back(8);
p.push_back(8);
p.push_back(8);
for(int i=0;i<p.size();i++)
{
int k= p[i];
if(pq.size() < 5) // top 'm' elements say m = 5 here
{
pq.push(k);
}
else if (pq.top() >= k)
{
pq.pop();
pq.push(k);
}
}
std::list<int> mylist;
while ( !pq.empty() )
{
mylist.push_front(pq.top());
pq.pop();
}
for (std::list<int>::iterator it=mylist.begin(); it!=mylist.end(); ++it)
std::cout << ' ' << *it;
cin.get();
}
I2luY2x1ZGUgPGlvc3RyZWFtPiAgCiNpbmNsdWRlIDxxdWV1ZT4gIAojaW5jbHVkZSA8bGlzdD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsgIAoKIGludCBtYWluKCkgIAogeyAgCiAgICAgcHJpb3JpdHlfcXVldWU8aW50LHZlY3RvcjxpbnQ+ID4gcHE7ICAKICAgICB2ZWN0b3IgPGludD4gcDsKICAgICBwLnB1c2hfYmFjaygzKTsgIAogICAgIHAucHVzaF9iYWNrKDMpOyAgCiAgICAgcC5wdXNoX2JhY2soMyk7ICAKICAgICBwLnB1c2hfYmFjaygzKTsgIAogICAgIHAucHVzaF9iYWNrKDUpOyAgCiAgICAgcC5wdXNoX2JhY2soNSk7ICAKICAgICBwLnB1c2hfYmFjayg1KTsgIAogICAgIHAucHVzaF9iYWNrKDUpOyAgCiAgICAgcC5wdXNoX2JhY2soMSk7ICAKICAgICBwLnB1c2hfYmFjayg4KTsgIAogICAgIHAucHVzaF9iYWNrKDgpOyAgCiAgICAgcC5wdXNoX2JhY2soOCk7ICAKICAgICBwLnB1c2hfYmFjayg4KTsgIAogICAgIHAucHVzaF9iYWNrKDgpOyAKICAgIGZvcihpbnQgaT0wO2k8cC5zaXplKCk7aSsrKQoJewoJCWludCBrPSBwW2ldOwoJCWlmKHBxLnNpemUoKSA8IDUpIC8vIHRvcCAnbScgZWxlbWVudHMgc2F5IG0gPSA1IGhlcmUgCgkJICAgICAgICB7CgkJICAgICAgICAgICAgICAgIHBxLnB1c2goayk7CgkJICAgICAgICB9CgkJICAgICAgICBlbHNlIGlmIChwcS50b3AoKSA+PSBrKQoJCSAgICAgICAgewoJCSAgICAgICAgICAgICAgICBwcS5wb3AoKTsKCQkgICAgICAgICAgICAgICAgcHEucHVzaChrKTsKCQkgICAgICAgIH0KCSB9Cgkgc3RkOjpsaXN0PGludD4gbXlsaXN0OwogICAgIHdoaWxlICggIXBxLmVtcHR5KCkgKSAgCiAgICAgeyAgCiAgICAgICAgIG15bGlzdC5wdXNoX2Zyb250KHBxLnRvcCgpKTsgIAogICAgICAgICBwcS5wb3AoKTsgIAogICAgIH0gIAogICAgIGZvciAoc3RkOjpsaXN0PGludD46Oml0ZXJhdG9yIGl0PW15bGlzdC5iZWdpbigpOyBpdCE9bXlsaXN0LmVuZCgpOyArK2l0KQogICAgICBzdGQ6OmNvdXQgPDwgJyAnIDw8ICppdDsKICAgICBjaW4uZ2V0KCk7ICAKIH0=