小岛的自驾旅行

小岛的自驾旅行

测试数据来自 system/1875

描述

给定一棵含有n个结点的树,结点从1标号。
你从1号结点驾车出发,希望遍历一些关键结点(访问到就好,不需要按照这些关键结点的输入顺序)。
每条边有两个权值,c_0与c_1,分别表示步行和驾车经过这条边的代价。
对于一条边u->v,每次你可以选择:驾车经过这条边(当且仅当人在结点u的时候,车也在结点u处);或者直接步行经过一条边,若此刻车在身边,则会暂时停放在结点u。
你可以在任何时间返回到车子所在的城市并重新驾车出发。
求遍历完所有关键结点的最少代价。注意: 你可以在任意结点结束遍历,即使那时候车子并不在身边。

格式

输入格式

输入数据的第一行,包含一个整数n —树的结点总数(1 <= n <= 10^6)。
接下来的 n-1 行,每行有四个整数 u, v, c_0, c_1 描述一条边(1 <= u, v <= n, 1 <= c_0, c_1 <= 10^9)。
接下来的一行包含一个整数 m — 关键结点的个数。
接下来的一行包含 m 个互不相同的整数 k_1, k_2, ... , k_m (1 <= k_i <= n) 表示关键结点。

输出格式

输出一行表示所求结果。

样例1

样例输入1

4
1 2 10 35
2 3 20 10
2 4 20 10
3
2 3 4

样例输出1

65

样例2

样例输入2

7
1 2 10 35
1 5 10 30
2 3 20 10
2 4 20 10
5 6 20 10
5 7 20 10
6
2 3 4 5 6 7

样例输出2

150

限制

每一个测试点限时5s.

来源

感谢 温馨与信赖的 岛哥 ^_^ 提供.

信息

ID
1900
难度
(无)
分类
(无)
标签
(无)
递交数
0
已通过
0
通过率
?
上传者