Pagini recente » Cod sursa (job #2543965) | Cod sursa (job #1126151) | Cod sursa (job #925334) | Cod sursa (job #1457613) | Cod sursa (job #2544735)
#include <fstream>
using namespace std;
ifstream fin("heapuri.in");
ofstream fout("heapuri.out");
int n, heap[100000], cronos[100000],vf;
void addElem(int Arr[])
{
int x;
fin>>x;
cronos[++vf] = x;
Arr[++Arr[0]] = x;
int poz = Arr[0];
while(poz>1 && Arr[poz]<Arr[poz/2])
{
swap(Arr[poz],Arr[poz/2]);
poz/=2;
}
}
void delElem(int Arr[])
{
int x;
fin>>x;
int elem = cronos[x];
int pozz;
for(int i=1;i<=Arr[0];++i)
if(Arr[i]==elem)
{
pozz=i;
break;
}
for(int i=pozz;i<Arr[0];++i)
{
Arr[i]=Arr[i+1];
}
--Arr[0];
int poz = Arr[0];
while(poz>1 && Arr[poz]<Arr[poz/2])
{
swap(Arr[poz],Arr[poz/2]);
poz/=2;
}
}
int main()
{
fin>>n;
while(n--)
{
int op;
fin>>op;
if(op==1)
{
addElem(heap);
}
else if(op==2)
{
delElem(heap);
}
else
{
fout<<heap[1]<<endl;
}
}
return 0;
}