atcoder#ABC222F. [ABC222F] Expensive Expense

[ABC222F] Expensive Expense

题目描述

AtCoder 王国は N N 個の街と N1 N-1 個の道路からなります。
街には 街 1 1 , 街 2 2 , \dots , 街 N N と番号がついています。道路にも同様に 道路 1 1 , 道路 2 2 , \dots , 道路 N1 N-1 と番号が付いています。 道路 i i は街 Ai A_i Bi B_i を双方向に結んでいて、通過するときに Ci C_i の通行料がかかります。すべての異なる街の組 (i, j) (i,\ j) に対して、道路を経由して街 i i から街 j j に行くことができます。

今、列 D = (D1, D2, , DN) D\ =\ (D_1,\ D_2,\ \dots,\ D_N) が与えられます。 Di D_i は街 i i を観光するときにかかる費用です。 このとき、街 i i から街 j j への旅費 Ei,j E_{i,j} を、(同じ道を 2 2 回以上使わずに街 i i から街 j j へ向かうときにかかる通行料の和) に Dj D_{j} を足したものとして定めます。

  • 厳密に言い換えると、i  j i\ -\ j 間の最短パスを i = p0, p1, , pk1, pk = j i\ =\ p_0,\ p_1,\ \dots,\ p_{k-1},\ p_k\ =\ j として、街 pl p_{l} と街 pl+1 p_{l+1} を結ぶ道路の通行料を cl c_l と置いたときに $ E_{i,j}\ =\ D_j\ +\ \displaystyle\sum_{l=0}^{k-1}\ c_l $ と定義します。

すべての i i に対して、街 i i を始点として他の街へ旅行したときにありえる旅費の最大値を求めてください。

  • 厳密に言い換えると、すべての i i に対して max1  j  N, j  i Ei,j \max_{1\ \leq\ j\ \leq\ N,\ j\ \neq\ i}\ E_{i,j} を求めてください。

输入格式

入力は以下の形式で標準入力から与えられる。

N N A1 A_1 B1 B_1 C1 C_1 A2 A_2 B2 B_2 C2 C_2 \vdots AN1 A_{N-1} BN1 B_{N-1} CN1 C_{N-1} D1 D_1 D2 D_2 \dots DN D_N

输出格式

N N 行出力せよ。i i 行目には $ \displaystyle\ \max_{1\ \leq\ j\ \leq\ N,\ j\ \neq\ i}\ E_{i,j} $ を出力せよ。

题目大意

有一颗 nn 个点,n1n - 1 条边带边权的树,现在定义从点 ii 到点 jj 的距离是点 ii 走到点 jj 路上的边权和加上 djd_j,问每个点到其它点的最长距离

3
1 2 2
2 3 3
1 2 3
8
6
6
6
1 2 3
1 3 1
1 4 4
1 5 1
1 6 5
9 2 6 5 3 100
105
108
106
109
106
14
6
1 2 1000000000
2 3 1000000000
3 4 1000000000
4 5 1000000000
5 6 1000000000
1 2 3 4 5 6
5000000006
4000000006
3000000006
3000000001
4000000001
5000000001

提示

制約

  • 2  N  2 × 105 2\ \leq\ N\ \leq\ 2\ \times\ 10^5
  • 1  Ai  N 1\ \leq\ A_i\ \leq\ N (1  i  N1) (1\ \leq\ i\ \leq\ N-1)
  • 1  Bi  N 1\ \leq\ B_i\ \leq\ N (1  i  N1) (1\ \leq\ i\ \leq\ N-1)
  • 1  Ci  109 1\ \leq\ C_i\ \leq\ 10^9 (1  i  N1) (1\ \leq\ i\ \leq\ N-1)
  • 1  Di  109 1\ \leq\ D_i\ \leq\ 10^9 (1  i  N) (1\ \leq\ i\ \leq\ N)
  • 整数の組 (i,j) (i,j) 1  i < j  N 1\ \leq\ i\ \lt\ j\ \leq\ N を満たすならば、街 i i から街 j j へいくつかの道路を通ることで移動できる。
  • 入力はすべて整数である。

Sample Explanation 1

すべての街の順序つき組 (i,j) (i,j) に対して Ei,j E_{i,j} を計算すると次のようになります。 - E1,2 = 2 + 2 = 4 E_{1,2}\ =\ 2\ +\ 2\ =\ 4 - E1,3 = 5 + 3 = 8 E_{1,3}\ =\ 5\ +\ 3\ =\ 8 - E2,1 = 2 + 1 = 3 E_{2,1}\ =\ 2\ +\ 1\ =\ 3 - E2,3 = 3 + 3 = 6 E_{2,3}\ =\ 3\ +\ 3\ =\ 6 - E3,1 = 5 + 1 = 6 E_{3,1}\ =\ 5\ +\ 1\ =\ 6 - E3,2 = 3 + 2 = 5 E_{3,2}\ =\ 3\ +\ 2\ =\ 5