잔디 심기
시간 제한2초메모리 제한512 MB
N개의 목초지가 트리를 이루고 있을 때, 거리가 1이나 2인 두 초지에 같은 종류의 풀을 심지 않도록 하면서 필요한 풀 종류의 최솟값을 구한다.
문제
농부 존이 모든 목초지에 잔디를 심을 시기이다. 농장은 개의 목초지로 이루어져 있으며(), 각 목초지는 의 번호가 붙어 있고 개의 양방향 길로 연결되어 있어 어떤 목초지에서든 길을 따라가면 다른 모든 목초지에 도달할 수 있다.
농부 존은 각 목초지에 서로 다른 종류의 잔디를 심을 수도 있지만, 사용하는 잔디 종류가 많아질수록 비용이 늘어나므로 전체적으로 사용하는 잔디 종류 수를 최소화하려고 한다.
안타깝게도 농장의 소들은 잔디 선택에 꽤 까다로워졌다. 같은 종류의 잔디가 인접한 두 목초지(길로 직접 연결된 경우)에 심어지거나, 심지어 거의 인접한 두 목초지(둘 다 공통된 목초지에 길로 직접 연결된 경우)에 심어지면 소들은 먹을 것의 다양성이 부족하다고 불평한다. 불만이 생긴 소들이 얼마나 말썽을 부리는지 생각하면, 농부 존에게 불평하는 소는 정말 골칫거리이다.
농부 존이 농장 전체에 필요한 잔디 종류의 최소 개수를 구할 수 있도록 도와주자.
입력
첫 번째 줄에 이 주어진다. 나머지 개의 줄에는 각각 길이 연결하는 두 목초지가 주어진다.
출력
농부 존이 사용해야 하는 잔디 종류의 최소 개수를 출력한다.
힌트
이 간단한 예시에는 4개의 목초지가 일렬로 연결되어 있다. 잔디 종류는 최소 3개가 필요하다. 예를 들어 농부 존은 목초지에 A, B, C 종류의 잔디를 A - B - C - A 순서로 심을 수 있다.