#Q0110. 修路

修路

题目描述

某地区有 nn 个乡村,编号为 1n1 \sim n,它们通过 n1n - 1 条双向土路连接, 保证从任意一个乡村出发,都可以沿若干条土路到达任意另一个乡村。 在这 nn 个乡村中,有 mm 个乡村已经完成城市化。

你打算将若干条土路升级为沥青路,以促进地区发展。但由于偏远地区施工困难,升级一条土路必须满足规则: 所选土路的至少其中一端是城市,或者是一个可以通过现有的沥青路到达某个城市的乡村。

如果你决定将第 ii 条土路升级为沥青路,则需支付施工费用 cic_i 元,并可获得交通便利带来的收益 wiw_i 元。 定义升级这条路的净收益为 wiciw_i - c_i 元;如果不升级,则净收益视为 00 元。

请你在满足上述升级规则的前提下,依次选择一些土路进行升级(也可以一条也不选),使得总净收益最大,并输出该最大值。

输入格式

第一行包含一个整数 tt (1t1001 \leq t \leq 100) — 测试数据的组数。以下是每组测试数据的描述。

第一行包含两个整数 nnmm (1mn1051 \leq m \leq n \leq 10^5) — 乡村总数以及已经城市化的乡村数量。

接下来一行包含 mm 个整数 k1,k2,,kmk_1, k_2, \cdots, k_m (1kin1 \leq k_i \leq n) — 所有完成城市化的乡村编号,保证 kik_i 两两不同。

接下来 n1n - 1 行,每行包含四个整数 ui,vi,ci,wiu_i, v_i, c_i, w_i — 编号为 uiu_iviv_i 的乡村之间有一条土路,这条路的施工费用为 cic_i 元,收益为 wiw_i 元 (1ui,vin1 \leq u_i, v_i \leq n, 1ci,wi1041 \leq c_i, w_i \leq 10^4)。

保证所有测试数据的 nn 之和不超过 21052 \cdot 10^5

输出格式

对于每组测试数据,输出一个整数,表示在符合升级规则的前提下,所能获得的最大总净收益。

样例

3
4 2
1 2
1 3 9 10
3 4 11 8
2 4 3 7
4 2
1 3
2 1 1 5
2 3 2 6
3 4 1 4
5 1
1
1 2 5 3
2 3 1 10
3 4 10 1
4 5 1 100

5
11
97