Олимпиадный тренинг

Задача . F. Дерево максимальной стоимости


Задано дерево, состоящее ровно из \(n\) вершин. Дерево — это связный неориентированный граф с \(n-1\) ребром. Каждой вершине \(v\) этого дерева соответствует некоторое значение \(a_v\).

Пусть \(dist(x, y)\) — расстояние между вершинами \(x\) и \(y\). Расстояние между вершинами — это количество ребер на простом пути между ними.

Определим стоимость дерева как следующую величину: сначала давайте зафиксируем одну вершину дерева. Пусть она равна \(v\). Тогда стоимость дерева равна \(\sum\limits_{i = 1}^{n} dist(i, v) \cdot a_i\).

Ваша задача — найти максимально возможную стоимость дерева, если вы можете выбирать \(v\) самостоятельно.

Входные данные

Первая строка входных данных содержит одно целое число \(n\), количество вершин в дереве (\(1 \le n \le 2 \cdot 10^5\)).

Вторая строка входных данных содержит \(n\) целых чисел \(a_1, a_2, \dots, a_n\) (\(1 \le a_i \le 2 \cdot 10^5\)), где \(a_i\) равно значению вершины \(i\).

Каждая из следующих \(n - 1\) строк описывает ребра дерева. Ребро \(i\) описывается двумя целыми числами \(u_i\) и \(v_i\), номерами вершин, которые оно соединяет (\(1 \le u_i, v_i \le n\), \(u_i \ne v_i\)).

Гарантируется, что заданные ребра образуют дерево.

Выходные данные

Выведите одно целое число — максимально возможную стоимость дерева, если вы можете выбрать любую вершину в качестве вершины \(v\).

Примечание

Картинка, соответствующая первому тестовому примеру:

Вы можете выбрать вершину \(3\) как корень, тогда ответ будет равен \(2 \cdot 9 + 1 \cdot 4 + 0 \cdot 1 + 3 \cdot 7 + 3 \cdot 10 + 4 \cdot 1 + 4 \cdot 6 + 4 \cdot 5 = 18 + 4 + 0 + 21 + 30 + 4 + 24 + 20 = 121\).

Во втором тестовом примере дерево состоит только из одной вершины, поэтому ответ всегда равен \(0\).


Примеры
Входные данныеВыходные данные
1 8
9 4 1 7 10 1 6 5
1 2
2 3
1 4
1 5
5 6
5 7
5 8
121
2 1
1337
0

time 2000 ms
memory 256 Mb
Правила оформления программ и список ошибок при автоматической проверке задач

Статистика успешных решений по компиляторам
 Кол-во
С++ Mingw-w645
Комментарий учителя