Cod sursa(job #613499)

Utilizator Lokycatalin petre Loky Data 28 septembrie 2011 14:18:41
Problema Heapuri Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.75 kb
#include <fstream>

using namespace std;

int a[200005],n,i,x,inst;

void swap(int x, int  y)
{
    int aux;
    aux=a[x];a[x]=a[y];a[y]=aux;
}

void heapup(int k)
{
    int t;
    if (k>1) {
        t=k/2;
        if (a[k]>a[t]) {
            swap(k,t);
            heapup(t);
        }
    }
}

void heapsort(int k)
{
    while (k>1) {
        swap(1,k);--k;
        heapdw(1,k);
    }
}

//heapdw

int main()
{
    ifstream f("heapuri.in");
    ofstream g("heapuri.out");
    f>>n;
    x=0;
    for (i=1;i<=n;i++) {
        f>>inst;
        if (inst==1) {x++;f>>a[x];}
        if (inst==3)
        for (i=1;i<=x;i++)
        heapup(i);
        heapsort(m);
    }

    f.close();
    g.close();
    return 0;
}