Cod sursa(job #1306646)

Utilizator bence21Bako Bence bence21 Data 31 decembrie 2014 12:20:59
Problema Heapuri Scor 40
Compilator cpp Status done
Runda Arhiva educationala Marime 1.3 kb
#include<fstream>
using namespace std;
int main()
{
    ifstream f("heapuri.in");
    ofstream g("heapuri.out");
    long n=0,j,a,b,ko,m,x,t[200000],k,mi[200000],h=0;
    int c;
    f>>m;
    for(k=1;k<=m;k++)
    {
        f>>c;
        if(c==1)
        {
            f>>x;
            t[++n]=x;
            a=1;
            b=h;
            ko=0;
            while(a<=b)
            {
                ko=(a+b)/2;
                if(x<mi[ko])
                    b=--ko;
                else if(x>mi[ko])
                    a=ko+1;
                else a=b+1;
            }
            for(j=h+1;j>ko+1;j--)
                mi[j]=mi[j-1];
            mi[ko+1]=x;
            h++;
        }
        else if(c==2)
        {
            f>>x;
            x=t[x];
            a=1;
            b=h;
            ko=0;
            while(a<=b)
            {
                ko=(a+b)/2;
                if(x<mi[ko])
                    b=--ko;
                else if(x>mi[ko])
                    a=ko+1;
                else {
                    a=b+1;
                    for(j=ko;j<h;j++)
                        mi[j]=mi[j+1];
                    h--;
                }
            }
        }
        else g<<mi[1]<<"\n";
    }
    f.close();
    g.close();
    return 0;
}