Cod sursa(job #844507)

Utilizator t.g.g.tt.g.g.t t.g.g.t Data 29 decembrie 2012 13:39:25
Problema Schi Scor 100
Compilator fpc Status done
Runda Arhiva de probleme Marime 1.03 kb
{problema schi de pe infoarena}
var a2:array[1..65535]of word; b,c:array[1..30000]of word; n,s,i:word;
procedure interogare(nod,st,dr,a:word);
var mij:word;
begin
  mij:=(st+dr) div 2;
  if st<dr then begin if a2[nod*2]>=a then interogare(2*nod,st,mij,a) else interogare(2*nod+1,mij+1,dr,a-a2[nod*2]) end else s:=st;
end;
procedure sterge(nod,st,dr,a:word);
var mij:word;
begin
mij:=(st+dr) div 2;
a2[nod]:=a2[nod]-1;
if st<>dr then begin if a<=mij then sterge(2*nod,st,mij,a) else sterge(2*nod+1,mij+1,dr,a); end;
end;
procedure actualizare(nod,st,dr:word);
var mij:word;
begin
a2[nod]:=dr-st+1;
mij:=(st+dr) div 2;
if (dr-st)>0 then begin actualizare(2*nod,st,mij); actualizare(2*nod+1,mij+1,dr) end;
end;
begin
assign(input,'schi.in'); reset(input);
readln(n);
actualizare(1,1,n);
for i:=1 to n do readln(b[i]);
for i:=n downto 1 do
  begin
    s:=0;
    interogare(1,1,n,b[i]);
    c[s]:=i;
    sterge(1,1,n,s);
  end;
assign(output,'schi.out'); rewrite(output);
for i:=1 to n do writeln(c[i]);
close(output);
end.