Pagini recente » Cod sursa (job #2044920) | Cod sursa (job #1490187) | Cod sursa (job #1202591) | Cod sursa (job #421056) | Cod sursa (job #1512637)
#include <cstdio>
#include <algorithm>
#include <vector>
using namespace std;
int n, H[200002];
vector <int> cron;
inline bool cmp(int a, int b) {
return a > b;
}
void push(int a) {
++ n;
H[n] = a;
push_heap(H + 1, H + n + 1, cmp);
}
void extract_min() {
//pop_heap(H + 1, H + n + 1, cmp);
//-- n;
}
int main() {
freopen("heapuri.in", "r", stdin);
freopen("heapuri.out", "w", stdout);
int m, x, t;
scanf("%d", &m);
for(int i = 1; i <= m; ++ i) {
scanf("%d", &t);
if(t == 3) {
printf("%d\n", H[1]);
// extract_min();
} else {
scanf("%d", &x);
if(t == 1) {
push(x);
cron.push_back(x);
} else {
-- x;
int nr;
nr = cron[x];
// cron.erase(cron.begin() + x);
for(int i = 1; i <= n; ++ i) {
if(H[i] == nr) {
swap(H[i], H[n]);
-- n;
make_heap(H + 1, H + n + 1, cmp);
break;
}
}
}
}
}
return 0;
}