Pagini recente » Cod sursa (job #2162539) | Cod sursa (job #13910) | Cod sursa (job #927989) | Cod sursa (job #2447304) | Cod sursa (job #318781)
Cod sursa(job #318781)
#include <stdio.h>
int main()
{
freopen("heapuri.in", "r", stdin);
freoepn("heapuri.out", "w", stdout);
scanf("%ld", &n);
for (i=0; i<n; i++)
{
scanf("%d", &cod);
if (cod<3)
{
scanf("%ld", &x);
if (cod==1)
{
a[++ia]=x;
heap[++iheap]=ia;
poz[ia]=iheap;
push(iheap);
}//if
else
if (cod==2)
pop(poz[x]);
}//if
else
printf("%ld\n", &a[poz[1]]);
}//for i
return 0;
}//main
void push(long x)
{
while (x/2)&&(a[heap[x]]<a[heap[x/2]])
{
aux=heap[x];
heap[x]=heap[x/2];
heap[x/2]=aux;
poz[heap[x]]=x;
poz[heap[x/2]]=x/2;
x/=2;
}//while
}//push