AT_abc222_f [ABC222F] Expensive Expense
题目描述
AtCoder 王国由 N 个城市和 N−1 条道路组成。
城市编号为城市 1、城市 2、…、城市 N。道路同样编号为道路 1、道路 2、…、道路 N−1。道路 i 双向连接城市 Ai 和 Bi,通过时需要支付 Ci 的通行费。对于任意不同的城市对 (i,j),都可以通过道路从城市 i 到达城市 j。
现在,给定一个序列 D=(D1,D2,…,DN),其中 Di 表示在城市 i 观光时需要的费用。此时,从城市 i 到城市 j 的旅行费用 Ei,j 定义为:从城市 i 出发,不重复经过同一条道路,前往城市 j 时所需通行费之和,加上 Dj。
- 更严格地说,设 i−j 之间的最短路径为 i=p0,p1,…,pk−1,pk=j,连接城市 pl 和 pl+1 的道路通行费为 cl,则 Ei,j=Dj+l=0∑k−1cl。
请对于每个 i,求出以城市 i 为起点前往其他城市时可能的最大旅行费用。
- 更严格地说,对于每个 i,求 max1≤j≤N,j=iEi,j。
输入格式
输入按以下格式从标准输入给出。
N
A1 B1 C1
A2 B2 C2
⋮
AN−1 BN−1 CN−1
D1 D2 … DN
输出格式
输出 N 行。第 i 行输出 max1≤j≤N,j=iEi,j。
输入输出样例 #1
输入 #1
3
1 2 2
2 3 3
1 2 3
输出 #1
8
6
6
输入输出样例 #2
输入 #2
6
1 2 3
1 3 1
1 4 4
1 5 1
1 6 5
9 2 6 5 3 100
输出 #2
105
108
106
109
106
14
输入输出样例 #3
输入 #3
6
1 2 1000000000
2 3 1000000000
3 4 1000000000
4 5 1000000000
5 6 1000000000
1 2 3 4 5 6
输出 #3
5000000006
4000000006
3000000006
3000000001
4000000001
5000000001
说明/提示
限制条件
- 2≤N≤2×105
- 1≤Ai≤N (1≤i≤N−1)
- 1≤Bi≤N (1≤i≤N−1)
- 1≤Ci≤109 (1≤i≤N−1)
- 1≤Di≤109 (1≤i≤N)
- 对于任意满足 1≤i<j≤N 的整数对 (i,j),都可以通过若干道路从城市 i 到城市 j。
- 所有输入均为整数。
样例解释 1
对于所有城市的有序对 (i,j),计算 Ei,j 如下:
- E1,2=2+2=4
- E1,3=5+3=8
- E2,1=2+1=3
- E2,3=3+3=6
- E3,1=5+1=6
- E3,2=3+2=5
由 ChatGPT 4.1 翻译