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

Задача . F. Максимальное поддерево


Пусть у вас есть \(k\) одномерных отрезков \(s_1, s_2, \dots s_k\) (каждый отрезок представляется двумя числами — координатами его концов). Тогда вы можете построить граф из \(k\) вершин на этих отрезках. Между \(i\)-й и \(j\)-й вершинами (\(i \neq j\)) есть ребро тогда и только тогда, когда отрезки \(s_i\) и \(s_j\) пересекаются (когда существует хотя бы одна точка, принадлежащая обоим отрезкам).

Например, если \(s_1 = [1, 6], s_2 = [8, 20], s_3 = [4, 10], s_4 = [2, 13], s_5 = [17, 18]\), то граф будет выглядеть следующим образом:

Дерево размера \(m\) считается хорошим, если можно выбрать \(m\) таких одномерных отрезков, что граф, построенный на этих отрезках, совпадает с деревом.

Вам задано дерево, найдите максимальный размер хорошего поддерева этого дерева. Напомним, что поддеревом называется связный подграф дерева.

Обратите внимание, что вам нужно ответить на \(q\) независимых запросов.

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

Первая строка содержит число \(q\) (\(1 \le q \le 15 \cdot 10^4\)) — количество запросов.

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

Каждая из следующих \(n - 1\) содержит два числа \(x\) и \(y\) (\(1 \le x, y \le n\)) — ребро между вершинами \(x\) и \(y\). Гарантируется, что заданный граф является деревом.

Гарантируется, что сумма всех \(n\) не превосходит \(3 \cdot 10^5\).

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

На каждый запрос выведите одно число — максимальный размер хорошего поддерева заданного дерева.

Примечание

В первом запросе одно из хороших поддеревьев размера \(8\) состоит из вершин: \({9, 4, 10, 2, 5, 1, 6, 3}\).


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

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

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