#aBC222F. [ABC222F] Expensive Expense

[ABC222F] Expensive Expense

AT_abc222_f [ABC222F] Expensive Expense

题目描述

AtCoder 王国由 NN 个城市和 N1N-1 条道路组成。
城市编号为城市 11、城市 22\dots、城市 NN。道路同样编号为道路 11、道路 22\dots、道路 N1N-1。道路 ii 双向连接城市 AiA_iBiB_i,通过时需要支付 CiC_i 的通行费。对于任意不同的城市对 (i,j)(i, j),都可以通过道路从城市 ii 到达城市 jj

现在,给定一个序列 D=(D1,D2,,DN)D = (D_1, D_2, \dots, D_N),其中 DiD_i 表示在城市 ii 观光时需要的费用。此时,从城市 ii 到城市 jj 的旅行费用 Ei,jE_{i,j} 定义为:从城市 ii 出发,不重复经过同一条道路,前往城市 jj 时所需通行费之和,加上 DjD_j

  • 更严格地说,设 iji-j 之间的最短路径为 i=p0,p1,,pk1,pk=ji = p_0, p_1, \dots, p_{k-1}, p_k = j,连接城市 plp_lpl+1p_{l+1} 的道路通行费为 clc_l,则 Ei,j=Dj+l=0k1clE_{i,j} = D_j + \displaystyle\sum_{l=0}^{k-1} c_l

请对于每个 ii,求出以城市 ii 为起点前往其他城市时可能的最大旅行费用。

  • 更严格地说,对于每个 ii,求 max1jN,jiEi,j\max_{1 \leq j \leq N,\, j \neq i} E_{i,j}

输入格式

输入按以下格式从标准输入给出。

NN
A1A_1 B1B_1 C1C_1
A2A_2 B2B_2 C2C_2
\vdots
AN1A_{N-1} BN1B_{N-1} CN1C_{N-1}
D1D_1 D2D_2 \dots DND_N

输出格式

输出 NN 行。第 ii 行输出 max1jN,jiEi,j\max_{1 \leq j \leq N,\, j \neq i} E_{i,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

说明/提示

限制条件

  • 2N2×1052 \leq N \leq 2 \times 10^5
  • 1AiN1 \leq A_i \leq N (1iN1)(1 \leq i \leq N-1)
  • 1BiN1 \leq B_i \leq N (1iN1)(1 \leq i \leq N-1)
  • 1Ci1091 \leq C_i \leq 10^9 (1iN1)(1 \leq i \leq N-1)
  • 1Di1091 \leq D_i \leq 10^9 (1iN)(1 \leq i \leq N)
  • 对于任意满足 1i<jN1 \leq i < j \leq N 的整数对 (i,j)(i, j),都可以通过若干道路从城市 ii 到城市 jj
  • 所有输入均为整数。

样例解释 1

对于所有城市的有序对 (i,j)(i, j),计算 Ei,jE_{i,j} 如下:

  • E1,2=2+2=4E_{1,2} = 2 + 2 = 4
  • E1,3=5+3=8E_{1,3} = 5 + 3 = 8
  • E2,1=2+1=3E_{2,1} = 2 + 1 = 3
  • E2,3=3+3=6E_{2,3} = 3 + 3 = 6
  • E3,1=5+1=6E_{3,1} = 5 + 1 = 6
  • E3,2=3+2=5E_{3,2} = 3 + 2 = 5

由 ChatGPT 4.1 翻译