Mai intai trebuie sa te autentifici.
Cod sursa(job #1782912)
Utilizator | Data | 18 octombrie 2016 17:09:35 | |
---|---|---|---|
Problema | Heapuri | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.76 kb |
#include <cstdio>
#include <queue>
using namespace std;
struct heap
{
int x,poz;
bool operator <(const heap &aux) const
{
return x>aux.x;
}
};
priority_queue<heap> h;
char vaz[200010];
int main()
{
freopen("heapuri.in", "r", stdin);
freopen("heapuri.out", "w", stdout);
int n,x,tip,nr=0;
scanf("%d",&n);
for(int i=1;i<=n;i++)
{
scanf("%d",&tip);
if(tip==1)
{
scanf("%d",&x);
h.push({x,++nr});
}
else if(tip==2)
{
scanf("%d",&x);
vaz[x]=1;
}
else
{
while(!h.empty() && vaz[h.top().poz]) h.pop();
printf("%d\n",h.top().x);
}
}
return 0;
}