Information
- ID
- 333
- Time
- 1000ms
- Memory
- 256MiB
- Difficulty
- 7
- Tags
- # Submissions
- 57
- Accepted
- 15
- Uploaded By
#include<bits/stdc++.h>
using namespace std;
int t,n,x;
char a;
int main(){
std::ios::sync_with_stdio(false);
priority_queue<int,vector<int>,greater<int> > num;//小顶堆
cin>>t>>n;
while(t--){
cin>>a;
if(a=='I'){
cin>>x;
if(num.size()<n)
num.push(x);
else if(num.top()<x){//当数目大于n是,判断后面的数是否大于队列中最小的数
num.pop();///若小于则没必要加入队列(这样极大的优化了代码)
num.push(x);//若大于,则先出队一个元素,再入队,保持队列中只有n个元素
}
}else{
cout<<num.top()<<endl;
}
}
return 0;
}
By signing up a 追梦算法网 universal account, you can submit code and join discussions in all online judging services provided by us.