ITREE - Nhãn của cây
Tác giả: RR
Ngôn ngữ: Pascal
{$R+,Q+}
const
FINP='';
FOUT='';
MAXN=1000;
var
a,c:array[1..MAXN,1..MAXN] of longint;
d,deg:array[1..MAXN] of longint;
f1,f2:text;
test,t,n:longint;
procedure openF;
begin
assign(f1,FINP); reset(f1);
assign(f2,FOUT); rewrite(f2);
end;
procedure closeF;
begin
close(f1); close(f2);
end;
procedure inp;
var
i,u,cc:longint;
begin
fillchar(deg,sizeof(deg),0);
read(f1,n);
for i:=2 to n do
begin
read(f1,u,cc);
inc(deg[u]); a[u,deg[u]]:=i;
c[u,i]:=cc;
end;
end;
procedure dfs(u:longint);
var
i,v:longint;
begin
d[u]:=0;
for i:=1 to deg[u] do
begin
v:=a[u,i];
dfs(v);
if (deg[v]=0) or (c[u,v]<d[v]) then d[u]:=d[u]+c[u,v]
else d[u]:=d[u]+d[v];
end;
end;
begin
openF;
read(f1,t);
for test:=1 to t do
begin
inp;
dfs(1);
writeln(f2,d[1],'.00');
end;
closeF;
end.