Pagini recente » Borderou de evaluare (job #563040) | Rezultatele filtrării | Rezultatele filtrării | Rezultatele filtrării | Cod sursa (job #2270565)
#include <bits/stdc++.h>
using namespace std;
const int NMAX=(2*(1e5)+5);
priority_queue <pair<int, int>, vector<pair<int, int>>, greater<pair<int, int>>> H;
int N, i, X, cod, cnt;
bool used[NMAX];
int main()
{
freopen("heapuri.in", "r", stdin);
freopen("heapuri.out", "w", stdout);
scanf("%d", &N);
for(i=1; i<=N; i++)
{
scanf("%d", &cod);
if(cod==1)
{
scanf("%d", &X);
cnt++;
H.push({X, cnt});
}
else if(cod==2)
{
scanf("%d", &X);
used[X]=true;
}
else
{
while(!H.empty() && used[H.top().second]==true)
H.pop();
printf("%d\n", H.top().first);
}
}
return 0;
}