Pagini recente » Monitorul de evaluare | Istoria paginii utilizator/faby19anton | Istoria paginii utilizator/upt_ulkei_gergely_kolumban | Cod sursa (job #2076614) | Cod sursa (job #2007053)
#include <bits/stdc++.h>
#define f first
#define s second
using namespace std;
FILE *F=fopen("heap.in", "r"), *G=fopen("heap.out", "w");
int n, x, y, k, a[200003];
priority_queue<pair<int, int> > pq;
bitset<200003> w;
int main()
{
fscanf(F, "%d ", &n);
for(int i = 0; i < n; ++ i)
{
fscanf(F, "%d ", &x);
if(x == 1)
{
fscanf(F, "%d ", &y);
a[++ k] = y;
pq.push({-y, k});
}
else if(x == 2)
fscanf(F, "%d ", &y), w[y] = 1;
else
{
while(!pq.empty() && w[pq.top().s])
pq.pop();
fprintf(G, "%d\n", pq.top().f*-1);
}
}
return 0;
}