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

Задача . E. Покраска дерева


Вам задано дерево (неориентированный связный ацикличный граф), состоящее из \(n\) вершин. Вы играете в игру на этом дереве.

Изначально все вершины белые. На первом ходу игры Вы выбираете одну вершину и красите ее в черный. Затем на каждом ходу Вы выбираете белую вершину, смежную (соединенную ребром) с любой черной вершиной и красите ее в черный.

Каждый раз, когда вы выбираете вершину (даже во время первого хода), Вы получаете количество очков, равное размеру компоненты связности, состоящей только из белых вершин, содержащей выбранную вершину. Игра заканчивается, когда все вершины покрашены в черный цвет.

Рассмотрим следующий пример:

Вершины \(1\) и \(4\) уже покрашены в черный цвет. Если Вы выберете вершину \(2\), Вы получите \(4\) очка за компоненту связности, состоящую из вершин \(2, 3, 5\) и \(6\). Если Вы выберете вершину \(9\), Вы получите \(3\) очка за компоненту связности, состоящую из вершин \(7, 8\) и \(9\).

Ваша задача — максимизировать количество очков, которое Вы получите.

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

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

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

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

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

Выведите одно целое число — максимальное количество очков, которое вы получите, если будете играть оптимально.

Примечание

Первый тестовый пример показан в условии задачи.


Примеры
Входные данныеВыходные данные
1 9
1 2
2 3
2 5
2 6
1 4
4 9
9 7
9 8
36
2 5
1 2
1 3
2 4
2 5
14

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

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