[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$ 。