Cod sursa(job #143619)

Utilizator dascalu2Dascalu Andi FLorin dascalu2 Data 26 februarie 2008 18:37:14
Problema Asmax Scor 90
Compilator fpc Status done
Runda Arhiva de probleme Marime 0.93 kb
type adresa=^nod;
     nod= record
          inf:integer;
          adr:adresa;
          end;
var n,x,y,i,max:longint;
    vs:array[0..16000]of longint;
    q:adresa;
    vc:array[1..16000]of adresa;
    t:array[0..16000]of byte;

procedure parc(nd,np:longint);
var p:adresa;
begin
     p:=vc[nd];
     while p<>nil do
     begin
          parc(p^.inf,nd);
          p:=p^.adr;
     end;
     if vs[nd]+vs[np]>vs[np] then
        vs[np]:=vs[np]+vs[nd];
end;



begin
assign(input,'asmax.in');
reset(input);
read(n);
for i:=1 to n do
read(vs[i]);
for i:=1 to n-1 do
begin
     read(x,y);
     new(q);
     q^.inf:=y;
     q^.adr:=vc[x];
     vc[x]:=q;
     t[y]:=1;
end;
close(input);
for i:=1 to n do
    if(t[i]=0)then
    break;
parc(i,0);
max:=-maxlongint;
for i:=1 to n do
    if(max<vs[i])then
    max:=vs[i];
assign(output,'asmax.out');
rewrite(output);
writeln(max);
close(output);
end.