Cod sursa(job #85185)

Utilizator vanila_CPPIonescu Victor Cristian vanila_CPP Data 20 septembrie 2007 15:58:52
Problema Schi Scor 100
Compilator fpc Status done
Runda Arhiva de probleme Marime 1.34 kb
program schi;
var f,g:text;
        n:longint;
        v,v1,aux:array[1..70001] of longint;


procedure init_arbore_intervale(nod,a,b:longint);
var m:longint;
begin
        v[nod]:=b-a+1;
        if a<b then
                begin
                        m:=(a+b) div 2;
                        init_arbore_intervale(nod*2,a,m);
                        init_arbore_intervale(nod*2+1,m+1,b);
                end;
end;


procedure update(nod,a,b,x,ind:longint);
var m:longint;
begin
        dec(v[nod]);
        if a=b then
                v1[a]:=ind else
                begin
                        m:=(a+b) div 2;
                        if v[nod*2]>=x then
                                update(nod*2,a,m,x,ind) else
                                update(nod*2+1,m+1,b,x-v[nod*2],ind);
                end;
end;


procedure van;
var i:longint;
begin
        assign(f,'schi.in');
        reset(f);
        assign(g,'schi.out');
        rewrite(g);
        readln(f,n);
        init_arbore_intervale(1,1,n);
        for i:=1 to n do
                readln(f,aux[i]);
        for i:=n downto 1 do
                update(1,1,n,aux[i],i);
        close(f);
end;


procedure ila;
var i:longint;
begin
        for i:=1 to n do
                writeln(g,v1[i]);
        close(g);
end;

begin
        van;ila;
end.