Cod sursă (job #96668)

Utilizator avatar Master011 Martac Dragos Master011 IP ascuns
Problemă Lalele (clasele 9-10) Compilator cpp | 0,98 kb
Rundă Tema 9 clasele 9-10 2014/15 Status evaluat
Dată 10 dec. 2014 00:26:55 Scor 100
#include <stdio.h>
#include <algorithm>

using namespace std;

const int Nmax=5000005;
int v[Nmax];

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

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