Mai intai trebuie sa te autentifici.
Cod sursa(job #1119275)
| Utilizator | Data | 24 februarie 2014 16:38:34 | |
|---|---|---|---|
| Problema | Heapuri | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.73 kb |
#include <cstdio>
#include <queue>
using namespace std;
const int NMAX = 200010;
int N, K, Type, X;
priority_queue<pair<int, int>, vector<pair<int, int> >, greater<pair<int, int> > > Q;
bool Out[NMAX];
int main()
{
freopen("heapuri.in", "r", stdin);
freopen("heapuri.out", "w", stdout);
scanf("%i", &N);
for(int i = 1; i <= N; ++ i)
{
scanf("%i", &Type);
if(Type == 1)
{
scanf("%i", &X);
Q.push(make_pair(X, ++K));
}else if(Type == 2)
{
scanf("%i", &X);
Out[X] = 1;
}else
{
while(Out[ Q.top().second ]) Q.pop();
printf("%i\n", Q.top().first);
}
}
}
