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

Задача . Grass Planting


Задача

Темы:
Наступило время, когда Фермер Джон садит траву на всех своих полях. Имеется \(N\) полей (\(1 \leq N \leq 10^5\)), последовательно пронумерованных \(1 \ldots N\) и удобно соединенных \(N-1\) двунаправленными дорожками таким образом, что из каждого поля можно добраться до каждого с помощью некоторой последовательности дорожек.

ФД может посадить на любом поле траву любого типа, но он хочет минимизировать количество типов травы, которые он использует.

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

Помогите ФД определить минимальное количество типов травы, которое ему требуется, чтобы не было недовольных коров.

ФОРМАТ ВВОДА (файл planting.in):

Первая строка ввода содержит \(N\). Каждая из последующих \(N-1\) строк описывает дорожку в терминах двух полей, которые она соединяет.

ФОРМАТ ВЫВОДА (файл planting.out):

Выведите минимальное количество типов травы, которое ФД должен использовать.


Примеры
Входные данныеВыходные данные
1 4
1 2
4 3
2 3
3

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

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