Cod sursa(job #2489199)

Utilizator DanutAldeaDanut Aldea DanutAldea Data 8 noiembrie 2019 08:23:39
Problema Heapuri Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.8 kb
#include <fstream>
using namespace std;

ifstream fin("heapuri.in");
ofstream fout("heapuri.out");

int v[200001],cron[200001],i,j,cnt,poz[200001],c,x;

int main(){
    fin>>m;
    for(;m;m--){
        fin>>c;

        if(c==1){
            fin>>x;
            v[++n]=x;
            chron[++cnt]=x;
            poz[x]=n;

            i=n;
            while(v[i]<v[i/2] && i/2){
                swap(v[i],v[i/2]);
                swap(poz[v[i]],poz[v[i/2]]);
                i/=2;
            }
        }

        if(c==2){
            fin>>x;
            swap(v[poz[chron[x]]],v[n]);
            i=poz[chron[x]];
            swap(poz[chron[x]],poz[v[n]]);
            n--;

            while(i*2<=n){
                if(v[i]>v[i/2])
            }
        }
    }

    return 0;
}