[COCI2014-2015#1] Kamp

题目描述

一颗树 $n$ 个点,$n-1$ 条边,经过每条边都要花费一定的时间,任意两个点都是联通的。 有 $K$ 个人(分布在 $K$ 个不同的点)要集中到一个点举行聚会。 聚会结束后需要一辆车从举行聚会的这点出发,把这 $K$ 个人分别送回去。 请你回答,对于 $i=1 \sim n$ ,如果在第 $i$ 个点举行聚会,司机最少需要多少时间把 $K$ 个人都送回家。

输入输出格式

输入格式


第一行两个整数 $n,K$ 。 接下来 $n-1$ 行,每行三个数 $x,y,z$ 表示 $x$ 到 $y$ 之间有一条需要花费 $z$ 时间的边。 接下来 $K$ 行,每行一个数,表示 $K$ 个人的分布。

输出格式


输出 $n$ 个数。 第 $i$ 行的数表示:如果在第 $i$ 个点举行聚会,司机需要的最少时间。

输入输出样例

输入样例 #1

7 2
1 2 4
1 3 1
2 5 1
2 4 2
4 7 3
4 6 2
3
7

输出样例 #1

11
15
10
13
16
15
10

输入样例 #2

5 2
2 5 1
2 4 1
1 2 2
1 3 2
4
5

输出样例 #2

5
3
7
2
2

说明

#### 数据规模与约定 - 对于 $50\%$ 的数据,保证 $n\le 2\times 10^3$。 - 对于 $100\%$ 的数据, $1 \le k \le n \leq 5\times 10^5$,$1 \le x,y \le n$,$1 \le z \le 10^8$ 。