Pagini recente » Cod sursa (job #2291124) | Cod sursa (job #1623290) | Cod sursa (job #941938) | Cod sursa (job #340433) | Cod sursa (job #1043428)
#include<cstdio>
using namespace std;
void heapup(int nod)
{
int aux;
if(a[h[nod]<a[h[nod/2]&&nod>1)
{
swap(a[h[nod]],a[h[nod/2]]);
swap(h[nod],h[nod/2]);
swap(poz[)
heapup(nod/2);
}
}
void heapdown(int i)
{
int aux;
if (i*2+1<=m)
{
if (a[h[2*i]<a[h[i]&&a[h[2*i+1]<=a[h[2*i])
{
aux=a[h[i];
a[h[i]=a[h[i*2];
a[h[i*2]=aux;
heapdown(i*2);
}
if (a[h[2*i+1]<a[h[i]&&a[h[2*i+1]<a[h[2*i])
{
aux=a[h[i];
a[h[i]=a[h[i*2+1];
a[h[i*2+1]=aux;
heapdown(i*2+1);
}
}
else if (i*2<=m&&i*2+1>m&&a[h[2*i]<a[h[i])
{
aux=a[h[i];
a[h[i]=a[h[i*2];
a[h[i*2]=aux;
heapdown(i*2);
}
return;
}
int main()
{
freopen("heapuri.in","r",stdin);
freopen("heapuri.out","w",stdout);
scanf("%d ",&p);
for(i=1;i<=p;i++)
{
scanf("%d%d",&op,&x);
if(op==3)
{
printf("%d\n",a[h[1]]);
}
if(op==1)
{
h[++nr]=x;
heapup(nr);
}
}
}