Pagini recente » Cod sursa (job #3142146) | Cod sursa (job #2548237) | Cod sursa (job #1068688) | Cod sursa (job #2107346) | Cod sursa (job #1458575)
#include <stdio.h>
#include <queue>
#define MAX 200005
using namespace std;
struct compar{
bool operator() (int a, int b){return a > b;}
};
priority_queue<int, vector<int>, compar> q, removed;
vector<int> v;
int main(){
freopen("heapuri.in", "r", stdin);
freopen("heapuri.out", "w", stdout);
int n, tip, x, i;
scanf("%d", &n);
for(i = 0; i < n; i++){
scanf("%d", &tip);
switch(tip){
case 1:{
scanf("%d", &x);
q.push(x);
v.push_back(x);
} break;
case 2:{
scanf("%d", &x);
removed.push(v[x - 1]);
} break;
default:{
while(!q.empty() && !removed.empty() && q.top() == removed.top()){
q.pop();
removed.pop();
}
printf("%d\n", q.top());
}
}
}
return 0;
}