Pagini recente » Cod sursa (job #1731465) | Cod sursa (job #2163674) | Cod sursa (job #381573) | Cod sursa (job #1160231) | Cod sursa (job #1476413)
#include <cstdio>
#include <algorithm>
#include <queue>
#include <vector>
using namespace std;
const int NMAX = 200505;
int ops, A[NMAX], r;
auto comp = [] (const int& x, const int& y) -> bool {
return A[x] > A[y];
};
priority_queue<int, vector<int>, decltype(comp)> Q(comp);
bool erased[NMAX];
void solve() {
scanf("%d", &ops);
int type, x;
while (ops--) {
scanf("%d", &type);
switch (type) {
case 1: {
scanf("%d", &x);
A[++r] = x;
Q.push(r);
break;
}
case 2: {
scanf("%d", &x);
erased[x] = true;
break;
}
case 3: {
while (!Q.empty() && erased[Q.top()]) Q.pop();
printf("%d\n", A[Q.top()]);
break;
}
}
}
}
int main() {
freopen("heapuri.in", "r", stdin);
freopen("heapuri.out", "w", stdout);
solve();
return 0;
}