题库练习 There Should Be a Lot of Maximums
← 上一题 下一题 →

A15819 | There Should Be a Lot of Maximums

时间限制1s
内存限制256MB
通过 / 提交0/0

题目描述

You are given a tree (a connected graph without cycles). Each vertex of the tree contains an integer. Let's define the $\mathrm{MAD}$ (maximum double) parameter of the tree as the maximum integer that occurs in the vertices of the tree at least $2$ times. If no number occurs in the tree more than once, then we assume $\mathrm{MAD}=0$ .

Note that if you remove an edge from the tree, it splits into two trees. Let's compute the $\mathrm{MAD}$ parameters of the two trees and take the maximum of the two values. Let the result be the value of the deleted edge.

For each edge, find its value. Note that we don't actually delete any edges from the tree, the values are to be found independently.

输入格式

The first line contains one integer $n$ ( $2 \le n \le 10^5$ ) — the number of vertices in the tree.

Each of the next $n - 1$ lines contains two integers $u$ and $v$ ( $1 \le u, v \le n$ ) — the ends of an edge of the tree. It's guaranteed that the given edges form a valid tree.

The last line contains $n$ integers $a_1, a_2, \ldots, a_n$ ( $1 \le a_i \le 10^9$ ) — the numbers in the vertices.

输出格式

For each edge in the input order, print one number — the maximum of the $\mathrm{MAD}$ parameters of the two trees obtained after removing the given edge from the initial tree.

输入输出样例

输入 #1
5
1 2
2 3
2 4
1 5
2 1 3 2 1
输出 #1
0
2
1
2
输入 #2
6
1 2
1 3
1 4
4 5
4 6
1 2 3 1 4 5
输出 #2
1
1
0
1
1
C++ 编辑器
输入
输出