Pagini recente » Cod sursa (job #2422630) | Cod sursa (job #2548419) | Cod sursa (job #2658973) | Cod sursa (job #1061929) | Cod sursa (job #2223033)
#include <iostream>
#include <algorithm>
#include <stdio.h>
using namespace std;
int contor=0;
struct elem
{
int nr;
int ordine=0;
};
elem v[1000];
void heap(int v[],int p)
{
int aux;
while(p!=0 && v[p]<v[p/2])
{
aux=v[p];
v[p]=v[p/2];
v[p/2]=aux;
p=p/2;
}
}
void eliminatorul (int v[],int p)
{
if(p<contor)
{
if(v[2*p]>v[(2*p)+1])
{
v[p]=v[2*p]
p=2*p;
}
else
v[p]=v[(2*p)+1];
p=(2*p)+1;
}
int main()
{
freopen("heapuri.in","r",stdin);
freopen("heapuri.out","w",stdout);
int n,num=1,j,minim,i;
cin>>n;
int cod;
int x;
for(i=0; i<n; i++)
{
cin>>cod;
if(cod!=3)
{
cin>>x;
if(cod==1)
{
v[contor].nr=x;
v[contor].ordine=num;
num++;
contor++;
heap(v,contor);
}
if(cod==2)
{int q=1;
j=0;
while(j<contor && q!=0)
{
if(x==v[j].ordine)
{
q=0;
eliminatorul(v,j);
}
}
}
}
else
{
cout<<v[0];
}
}
}