Cod sursă (job #495642)

Utilizator avatar MatiescuL Matiescu Laura MatiescuL IP ascuns
Problemă Lalele (clasele 9-10) Compilator cpp | 1,16 kb
Rundă Arhiva de probleme Status evaluat
Dată 22 oct. 2019 23:24:44 Scor 100
#include <stdio.h>
#include <algorithm>

using namespace std;

const int F=5000003;
int inaltime[F];

int main()
{
    FILE *in=fopen("lalele.in","r");
    FILE *out=fopen("lalele.out","w");

    int n,i,d,zile;
    int x,aux,nr=0,q;

    fscanf(in,"%d",&n);
    zile=0;
    while(n>0)
    {
        fscanf(in,"%d%d",&d,&x);
        if(x==0)
        {
            for(i=0;i<d;i++)
            {
                q=(nr>>1)+1;
                if(nr!=q)
                    nth_element(inaltime+1,inaltime+q,inaltime+nr+1);
                else if(q==2)
                    if(inaltime[1]>inaltime[2])
                    {
                        aux=inaltime[1];
                        inaltime[1]=inaltime[2];
                        inaltime[2]=aux;
                    }
                fprintf(out,"%d\n",inaltime[q]+zile);
                nr>>=1;
                zile++;
            }
        }
        else
        {
            zile+=d-1;
            for(i=0;i<d;i++)
            {
                inaltime[++nr]=x-zile;
                zile--;
            }
            zile+=d+1;
        }
        n-=d;
    }
    return 0;
}