정기 모임 3
시간 제한1초메모리 제한1024 MB
거리 X가 1부터 N까지일 때, 트리에서 임의의 두 정점 사이 거리가 정확히 X가 되도록 고를 수 있는 정점의 최대 개수를 각각 구한다.
문제
정점이 개인 트리가 주어진다. 각 정점에는 번부터 번까지 차례대로 번호가 붙어 있다. 번째 간선은 번 정점과 번 정점을 연결한다.
트리에서 두 정점 사이의 거리는 두 정점을 잇는 유일한 단순 경로에 포함되는 간선의 수로 정의한다.
사람들이 트리 위에서 모임을 열려고 한다. 트리 위에서도 바이러스는 퍼지므로 사람들은 정부의 방역 지침을 지키며 모임을 진행한다. 한 정점에 한 사람씩 참석해 거리두기를 유지하며 모인다.
정부가 단계 방역 지침을 시행하면 트리 위의 임의의 두 사람 사이의 거리는 이상이어야 한다. 그런데 사람들은 너무 멀리 떨어져서 모임을 하고 싶지 않으므로 거리가 를 초과하지도 않게 모인다. 따라서 트리에 있는 임의의 두 사람 사이의 거리가 정확히 가 되도록 모인다.
사람들은 모임을 최대한 크게 열고 싶어 하므로, 위 거리 조건을 지키며 트리에 수용할 수 있는 사람 수의 최댓값을 구하려고 한다. 코로나 상황은 수시로 변하고 무슨 일이 일어날지 예측할 수 없으므로 사람들은 여러 의 가능성을 고려한다. 인 모든 경우에 대해 모일 수 있는 최대 인원을 구해 보자.
입력
첫 줄에 이 주어진다. 이후 줄에 걸쳐 번째 줄에 트리의 번째 간선을 나타내는 가 공백을 사이에 두고 주어진다.
출력
줄에 걸쳐 번째 줄에는 방역 지침이 단계일 때 모일 수 있는 최대 인원을 출력하라.