Cod sursă (job #96641)

Utilizator avatar Claudiu Dan Claudiu Claudiu IP ascuns
Problemă Lalele (clasele 9-10) Compilator cpp | 1,03 kb
Rundă Tema 9 clasele 9-10 2014/15 Status evaluat
Dată 9 dec. 2014 23:09:52 Scor 95
#include <stdio.h>
#include <algorithm>

using namespace std;

const int N=5000002;
int val[N];

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

    int n,i,z,d,x,aux,nr=0,k;

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