Pagini recente » Cod sursa (job #1138080) | Cod sursa (job #1590712) | Cod sursa (job #2191275) | Cod sursa (job #393031) | Cod sursa (job #248679)
Cod sursa(job #248679)
type lista=^elem;
elem= record
inf:longint;
adu:lista ;
end;
var n,i,x,y,s:longint;
st,af,c,v:array[1..100]of longint;
vc:array[1..100]of lista;
q:lista;
f,g:text;
procedure dfs(k,n:longint);
var p:lista;
begin
st[k]:=n;
if (v[n]=0) then af[n]:=0
else af[n] := af[st[k-v[n]]]+1;
p:=vc[n];
while(p<>nil)do
begin
dfs(k+1,p^.inf);
p:=p^.adu;
end;
end;
begin
assign(f,'cerere.in');
reset(f);
readln(n);
for i:=1 to n do
read(v[i]);
for i:=1 to n-1 do
begin
read(x,y);
c[y]:=x;
new(q);
q^.inf:=y;
q^.adu:=vc[x];
vc[x]:=q;
end;
close(f);
for i:=1 to n do
if(c[i]=0)then
begin
s:=i;
break
end;
dfs(1,s);
assign(g,'cerere.out');
rewrite(output);
for i:=1 to n do
write(g,af[i],' ');
close(g);
end.