Cod sursă (job #486246)

Utilizator avatar AndreiCroitoru Andrei Croitoru AndreiCroitoru IP ascuns
Problemă Lalele (clasele 9-10) Compilator cpp | 1,42 kb
Rundă Arhiva de probleme Status evaluat
Dată 15 sept. 2019 13:35:02 Scor 100
#include <fstream>
#include <algorithm>
using namespace std;
ifstream in("lalele.in");
ofstream out("lalele.out");
struct ura
{
    int h,zi;
};
bool comp(ura x,ura y)
{
    if(x.h<y.h)
    return true;
    else
    return false;
}

int v[5000001];
int main()
{
    int n,i,s=0,nr=0,z=1,d,x,j;
    in>>n;
    /*for(i=1;i<=n;)
    {
        in>>d>>x;
        if(x!=0)
        for(j=1;j<=d;j++,i++)
        {
            v[++q].h=x;
            v[q].zi=i;
        }
        else
        {
            int k=q/2;
            for(l=1;l<=q;l++)
            {
                v[l].h+=(i-v[l].zi);
            }
            for(j=1;j<=d;j++)
            {
                nth_element(v+1,v+q/2+1,v+q+1,comp);
                out<<v[q/2+1].h<<'\n';
                q=q/2;
                ++i;
                for(l=1;l<=q;l++)
                v[l].h+=1;
            }
        }
    }*/
    int add=0;
    while(s<n)
    {
        in>>d>>x;
        s+=d;
        if(x==0)
        {
             for(i=1; i<=d; i++)
            {
                add++;
                nth_element(v+1, v+nr/2+1, v+nr+1);
                out<<v[nr/2+1]+add<<'\n';
                nr/=2;
            }
        }
        else
        {

            add+=d;
            for(i=1; i<=d; i++)
            {
                nr++;
                v[nr]=x+i-add-1;
            }
        }

    }
    return 0;
}