#723. 安装路灯

安装路灯

样例下载

问题描述

Farmer John 的农场中的道路形成一棵树的结构,每条边是一条道路,每条道路的长度均为 11 个单位距离。每个节点是一个路口,一共 NN 个路口,编号为 11 ~ NN

晚上的时候,奶牛们经常在道路上走来走去,由于天黑,在路口处经常会出现各种事故。

因此 John 决定安装路灯。

为了让每一个路灯发挥最大的作用,John 决定把所有路灯都安装在路口处。不同的路口安装路灯的费用是不同的,编号为 ii 的路口安装路灯需要的费用为 CiC_i

并且 John 根据以往的事故统计,确定了 KK 个路口为重要路口,这些路口必须被照亮。

如果一个路口安装了路灯,那么这个路口以及和该路口距离不超过 LL 的所有路口都可以被照亮。

问:要把所有的 KK 个重要路口都照亮,John 安装路灯需要的最小总花费是多少?

输入格式

第一行:两个整数 N,LN, L

第二行:NN 个整数 CiC_i

第三行:一个整数 KK

第四行:KK 个整数 PiP_i,表示重要路口的编号。数据保证 P1<P2<<PKP_1 < P_2 < …… < P_K

接下来 N1N-1 行,每行两个整数 x,yx, y 表示路口 xx 和路口 yy 之间有一条道路。

输出格式

一个整数,表示答案。

输入样例

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

输出样例

10

数据范围

100% 的数据:N5×105,L20,Ci1000,KNN ≤ 5 × 10 ^ 5, L ≤ 20, C_i ≤ 1000, K ≤ N。