Pagini recente » Cod sursa (job #898729) | Cod sursa (job #372653) | Cod sursa (job #2928867) | Cod sursa (job #726170) | Cod sursa (job #980799)
Cod sursa(job #980799)
#include <fstream>
#include <vector>
#include <queue>
#include <iterator>
using namespace std;
ifstream f("heapuri.in");
ofstream g("heapuri.out");
int n;
int v[200010],p;
int viz[200010];
priority_queue<pair<int,int>,vector<pair<int,int> >,greater<pair<int,int> > > h;
//vector<int>::iterator it;
int main(void){
register int i,j,t,x;
pair<int,int> q;
f>>n;
for(i=1;i<=n;i++){
f>>t;
if(t==1){
f>>x;
v[++p]=x;
h.push(make_pair(v[p],p));
}
else if(t==2){
f>>x;
viz[x]=true;
}
else{
q=h.top();
while(viz[q.second]){
h.pop();
q=h.top();
}
q=h.top();
g<<q.first<<"\n";
}
}
f.close();
g.close();
return 0;
}