캐티와 원기
시간 제한1초메모리 제한256 MB
N개 정점의 트리에 간선 2개를 더해 만들어지는 모든 순환에 속하는 정점 수를 최대로 만들 때의 값을 구한다.
문제
캐티는 최근 원기를 상대로 사기를 쳤다. 그래서 원기는 캐티에게 복수하려고 한다.
캐티에게는 정점이 N개인 트리가 하나 있는데, 캐티가 아끼는 물건이다. 장난꾸러기 원기는 이 트리의 두 정점을 잇는 간선을 추가하려고 한다.
원기는 되도록 많은 간선을 추가하고 싶었지만, 트리의 주인인 캐티의 복수가 두려워 간선을 2개만 추가하려 한다.
간선을 추가하면 사이클이 여러 개 생긴다. 원기는 그 사이클에 속하는 정점의 개수를 최대한 크게 만들어 캐티의 트리를 망치려 한다.
캐티는 그 계획을 알아채고 자기 트리가 망가지는 최악의 상황이 어떤지 알아보려 한다.
원기가 간선 2개를 추가해서 만들어진 사이클에 속하는 정점 개수의 최댓값을 구하시오.
단, 원기가 간선 2개를 추가한 뒤 나오는 그래프에는 중복 간선이나 self loop가 있을 수 있다.
또한 여러 사이클에 속하는 정점도 한 번만 세며, self loop도 하나의 사이클로 본다.
입력
첫째 줄에 트리의 정점 수 N이 주어진다. (1 ≤ N ≤ 105)
그 뒤로 N-1개의 줄에 걸쳐, 트리의 각 간선이 잇는 두 정점의 번호가 공백을 사이에 두고 주어진다.
출력
간선 2개를 추가했을 때, 사이클에 속하게 되는 정점 개수의 최댓값을 출력하시오.