Cod sursa(job #144499)

Utilizator CezarMocanCezar Mocan CezarMocan Data 27 februarie 2008 18:45:18
Problema Schi Scor 70
Compilator fpc Status done
Runda Arhiva de probleme Marime 1.01 kb
var arb,v,rez,p:array[0..60000] of longint;
    n,i,j,t,poz:longint;

procedure build(nod:longint;l,r:longint);
var m:longint;
begin
if (l=r) then
        begin
        arb[nod]:=1;
        p[nod]:=l;
        exit;
        end;
m:=(l+r) div 2;
build(nod*2,l,m);
build(nod*2+1,m+1,r);
arb[nod]:=arb[2*nod]+arb[2*nod+1];
end;

procedure compute(nod,x:longint;var poz:longint);
var m:longint;
begin
if (arb[nod]=1)and(p[nod]<>0) then
        begin
        poz:=p[nod];
        arb[nod]:=0;
        exit;
        end;
if x<=arb[2*nod] then
        compute(2*nod,x,poz)
else
        compute(2*nod+1,x-arb[2*nod],poz);
dec(arb[nod]);
end;

begin
assign(input,'schi.in');reset(input);
assign(output,'schi.out');rewrite(output);
readln(n);
for i:=1 to n do
        read(v[i]);
build(1,1,n);
for i:=n downto 1 do
        begin
        t:=v[i];
        poz:=0;
        compute(1,t,poz);
        rez[poz]:=i;
        end;
for i:=1 to n do
        writeln(rez[i]);
close(input);close(output);
end.