Cod sursa(job #1044870)

Utilizator victor_crivatCrivat Victor victor_crivat Data 30 noiembrie 2013 15:55:34
Problema Heapuri Scor 20
Compilator cpp Status done
Runda Arhiva educationala Marime 0.74 kb
#include <fstream>
using namespace std;
 int a,b,h[10000],i,j,k,n,hh[100000];
ifstream f("heapuri.in");
ofstream g("heapuri.out");
void del(int b)
{int i;
    for (i=b+1;i<=k;i++)
    h[i-1]=h[i];
    k--;
}
void swap(int i,int j)
{int aux;
    aux=h[i];
    h[i]=h[j];
    h[j]=aux;
}
void heapup(int poz)
{int i;
    i=poz/2;
    if (h[poz]<h[i])
    {swap(poz,i);
     heapup(i);
    }
}
int main()
{f>>n;
for (i=1;i<=n;i++)
    {f>>a;
    if(a!=3) f>>b;
    if (a==1) {k++;
    hh[k]=b;
                 h[k]=b;
                 heapup(k);
                }
    if(a==2){for (j=1;j<=k;j++) if (h[j]==hh[b]) del(j);
            for (j=2;j<=k;j++) heapup(j);
            }
    if (a==3) g<<h[1]<<'\n';

    }

}