Pagini recente » Cod sursa (job #77740) | Cod sursa (job #2842741) | Profil Crina | Cod sursa (job #345094) | Cod sursa (job #1296303)
#include <fstream>
#define dim 200003
using namespace std;
ifstream fin("heapuri.in");
ofstream fout("heapuri.out");
int v[4*dim],n,i,o,k,x,poz[4*dim],j;
void insereaza(int x){
v[++k]=x;poz[k]=k;
int p=k/2,c=k;
while(p>=1 && v[p]>v[c]){
swap(v[c],v[p]);
swap(poz[c],poz[p]);
c=p;
p/=2;
}
}
void sterge(int x){
v[x]=v[k];
k--;
int p=x,c=2*p;
while(p>=1 && v[p]>v[c]){
swap(v[c],v[p]);
swap(poz[c],poz[p]);
c=p;
p/=2;
}
}
int main(){
fin>>n;
for(i=1;i<=n;i++){
fin>>o;
if(o==1){
fin>>x;
insereaza(x);
}
if(o==2){
fin>>x;
for(j=1;j<=k;j++){
if(poz[j]==x){
sterge(j);
break;
}
}
}
if(o==3){
fout<<v[1]<<'\n';
}
}
fin.close();fout.close();
return 0;
}