Cod sursa(job #105245)

Utilizator CezarMocanCezar Mocan CezarMocan Data 17 noiembrie 2007 13:38:29
Problema Zvon Scor 0
Compilator fpc Status done
Runda Happy Coding 2007 Marime 1.37 kb
var a,b,n,i,j,k,tt,nmax:longint;
    ind,id,v,max,nrmax,x,y,t:array[0..100000]of longint;

procedure df(nod:longint);
var i,j:longint;
begin
for i:=ind[nod]+1 to ind[nod+1] do
        begin
        df(v[i]);
        if t[v[i]]=max[nod] then
                inc(nrmax[nod]);
        if t[v[i]]>max[nod] then
                begin
                max[nod]:=t[v[i]];
                nrmax[nod]:=1;
                end;
        end;
t[nod]:=max[nod]+nrmax[nod];
end;


begin
assign(input,'zvon.in');reset(input);
assign(output,'zvon.out');rewrite(output);
readln(tt);
for k:=1 to tt do
        begin
        readln(n);
        for i:=2 to n do
                begin
                readln(x[i],y[i]);
                inc(ind[x[i]]);
                end;
        for i:=2 to n do
                ind[i]:=ind[i-1]+ind[i];
        for i:=n downto 1 do
                ind[i]:=ind[i-1];
        for i:=2 to n do
                begin
                inc(id[x[i]]);
                v[ind[x[i]]+id[x[i]]]:=y[i];
                end;
        ind[n+1]:=ind[n]+id[n];
        if n<>1 then
                df(1);
        writeln(t[1]);
        for i:=0 to 100000 do
                begin
                max[i]:=0;
                nrmax[i]:=0;
                v[i]:=0;
                ind[i]:=0;
                id[i]:=0;
                end;
        end;
end.