Cod sursa(job #41308)

Utilizator AymdTrimbitas Viorel Stefan Aymd Data 28 martie 2007 09:53:20
Problema Cerere Scor 20
Compilator fpc Status done
Runda Arhiva de probleme Marime 0.77 kb
var f,g:text;
    c,s,p,a:array[1..100001]of longint;
    r:array[1..100001]of byte;
    i,j,n,ip,x,y:longint;
    e:boolean;

begin
assign(f,'cerere.in');
reset(f);
readln(f,n);
for i:=1 to n do begin
   read(f,c[i]);
end;
for i:=1 to n-1 do begin
   read(f,x,j);
   a[j]:=x;
end;
i:=1;
while r[i]=1 do i:=i+1;
e:=i<>n+1;
y:=i;
while e do begin
   ip:=1;
   p[1]:=i;
   while c[i]>0 do begin
      for j:=1 to c[i] do i:=a[i];
      ip:=ip+1;
      p[ip]:=i;
   end;
   i:=s[i]-1;
   for j:=ip downto 1 do begin
      i:=i+1;
      ip:=p[j];
      c[ip]:=0;
      s[ip]:=i;
      r[ip]:=1;
   end;
   i:=y;
   while r[i]=1 do i:=i+1;
   e:=i<>n+1;
end;
assign(g,'cerere.out');
rewrite(g);
for i:=1 to n do write(g,s[i],' ');
close(g);
end.