program bzoj_3566; var l:array[1..1000000]ofrecord ed,pre:longint; p:extended; end; lst,fa:array[1..500000]of longint; f1,f2:array[1..500000]of extended; n,i,a,b,c,tot:longint; ans:extended; procedurelink(a,b,p:longint); begin inc(tot); l[tot].pre:=lst[a]; lst[a]:=tot; l[tot].ed:=b; l[tot].p:=p/100; end; proceduredfs1(t:longint); var k:longint; begin k:=lst[t]; while k<>0do begin if l[k].ed<>fa[t] then begin fa[l[k].ed]:=t; dfs1(l[k].ed); f1[t]:=f1[t]*(f1[l[k].ed]+(1-f1[l[k].ed])*(1-l[k].p)); end; k:=l[k].pre; end; end; proceduredfs2(t:longint); var k:longint; p:extended; begin k:=lst[t]; while k<>0do begin if l[k].ed<>fa[t] then begin p:=f1[l[k].ed]+(1-f1[l[k].ed])*(1-l[k].p); if p<1e-6then p:=0else p:=f1[t]*f2[t]/p; f2[l[k].ed]:=p+(1-p)*(1-l[k].p); dfs2(l[k].ed); end; k:=l[k].pre; end; end; begin readln(n); tot:=0; for i:=1to n-1do begin readln(a,b,c); link(a,b,c); link(b,a,c); end; for i:=1to n do begin read(c); f1[i]:=1-c/100; end; fa[1]:=0; dfs1(1); f2[1]:=1; dfs2(1); ans:=0; for i:=1to n do ans:=ans+1-f1[i]*f2[i]; writeln(ans:0:6); end.