Pagini recente » Cod sursa (job #1142417) | Cod sursa (job #1469521) | Cod sursa (job #2492065) | Cod sursa (job #959776) | Cod sursa (job #755530)
Cod sursa(job #755530)
#include <cstdio>
#include <cstdlib>
#include <cmath>
#include <queue>
using namespace std;
#define mp make_pair
#define nmax 200010
int n;
priority_queue< pair<int, int>, vector<pair<int, int> >, greater< pair<int, int> > > heap;
bool deleted[nmax];
int main()
{
freopen("heapuri.in", "r", stdin);
freopen("heapuri.out", "w", stdout);
int i, counter = 0;
scanf("%i", &n);
for(i = 1; i <= n; i++)
{
int op;
scanf("%i", &op);
if(op == 1)
{
int val;
scanf("%i", &val);
heap.push(mp(val, ++counter));
}
if(op == 2)
{
int pos;
scanf("%i", &pos);
deleted[pos] = true;
}
if(op == 3)
{
while(deleted[heap.top().second]) heap.pop();
printf("%i\n", heap.top().first);
}
}
scanf("%i", &i);
return 0;
}