优先级队列真心好用,队列从小到大排列,超过k就出最小的即可
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4006
原帖地址:http://blog.youkuaiyun.com/qiqijianglu/article/details/6779313
#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <algorithm>
#include <cmath>
#include<queue>
#include<functional>
using namespace std;
priority_queue<int, vector<int>, greater<int> > Q; //functional 头文件自带的
int main()
{
//freopen("in.txt", "r", stdin);
//freopen("out.txt", "w", stdout);
int n,k;
while(cin>>n>>k)
{
while(!Q.empty()) Q.pop();
int i,a;
char order;
for(i=0;i<n;i++)
{
cin>>order;
//cout<<order<<endl;
if(order=='I')
{
cin>>a;
Q.push(a);
if(Q.size() >k) Q.pop();
}
else cout<<Q.top()<<endl;
}
}
return 0;
}