loj#P3015. 「COCI 2014.12」MRAVI

「COCI 2014.12」MRAVI

题目描述

译自 COCI 2014/2015 Contest #4 T4「MRAVI

小 Bobi 每天起床后的首要任务是给他的宠物蚂蚁喂食。

他把它们放在一个玻璃容器里,里面是一个管道系统,可以用一棵有 NN 个结点且根节点为 11 的树表示,每条管道对应树中的边。
在这个系统中,液体从某个结点流向这个结点的儿子

我们知道每条管道的流量 XiX_i,即从父亲结点经过这条管道流到儿子结点的液体百分比。
让我们来研究一下这个例子:

Example

图中,结点 11 有着 1212 升液体和两条管道连接。其中一条管道 Xi=30X_i = 30,另一条 Xi=70X_i = 70
那么,结点 22 将会获得 3.63.6 升液体,结点 33 将会获得 8.48.4 升液体。
在给定的数据中,保证一个结点连接的所有管道的 XiX_i 之和为 100100

不过,Bobi 有些管道开了挂,可以让流经的液体变成原来的平方。
比如,如果上述第一条管道开了挂,那么结点 22 获得的液体将会变成 12.9612.96 升,但结点 33 获得的液体仍是 8.48.4 升。
这个挂的神奇之处在于,一个结点流出的液体可能大于流进这个结点的液体!

蚂蚁只住在叶子结点上。对于每个叶子结点,给定该结点的蚂蚁所需的液体量 KiK_i。Bobi 将会往根结点倒入 LL 升液体。
Bobi 想知道,他至少要倒入多少升液体,才能喂饱所有蚂蚁,即求满足条件的最小的 LL

数据保证 LL 不超过 21092 \cdot 10^9

输入格式

第一行,一个整数 NN
接下来 N1N-1 行,每行四个整数 Ai,Bi,Xi,TiA_i,B_i,X_i,T_i,表示有一条连接 Ai,BiA_i,B_i 的管道,流量为 XiX_i,开挂情况为 TiT_i,为 11 时开挂否则不开。
接下来一行,NN 个整数 KiK_i,表示每个结点的蚂蚁所需的液体量。如果第 ii 个结点不是叶子,Ki=1K_i = -1

输出格式

一行,最小的 LL
误差最多为 0.0010.001

5
1 2 50 0
1 3 50 0
2 4 25 0
2 5 75 1
-1 -1 4 1 9
8.00
3
1 2 20 1
1 3 80 1
-1 4 8
10.0000
6
1 2 100 1
2 3 20 0
2 4 20 0
2 5 60 0
4 6 100 1
-1 -1 1 -1 1 2
2.659

数据范围与提示

$1 \le A_i,B_i \le N \le 1000,1 \le X_i \le 100,0 \le T_i \le 1$。