아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

캐티와 원기

시간 제한1초메모리 제한256 MB

요약
N개 정점의 트리에 간선 2개를 더해 만들어지는 모든 순환에 속하는 정점 수를 최대로 만들 때의 값을 구한다.
난이도

어려움10점 중 8점

유형
트리, 그래프, DFS, 그리디
정답자
아직 제출이 없습니다

문제

캐티는 최근 원기를 상대로 사기를 쳤다. 그래서 원기는 캐티에게 복수하려고 한다.

캐티에게는 정점이 N개인 트리가 하나 있는데, 캐티가 아끼는 물건이다. 장난꾸러기 원기는 이 트리의 두 정점을 잇는 간선을 추가하려고 한다.

원기는 되도록 많은 간선을 추가하고 싶었지만, 트리의 주인인 캐티의 복수가 두려워 간선을 2개만 추가하려 한다.

간선을 추가하면 사이클이 여러 개 생긴다. 원기는 그 사이클에 속하는 정점의 개수를 최대한 크게 만들어 캐티의 트리를 망치려 한다.

캐티는 그 계획을 알아채고 자기 트리가 망가지는 최악의 상황이 어떤지 알아보려 한다.

원기가 간선 2개를 추가해서 만들어진 사이클에 속하는 정점 개수의 최댓값을 구하시오.

단, 원기가 간선 2개를 추가한 뒤 나오는 그래프에는 중복 간선이나 self loop가 있을 수 있다.

또한 여러 사이클에 속하는 정점도 한 번만 세며, self loop도 하나의 사이클로 본다.

입력

첫째 줄에 트리의 정점 수 N이 주어진다. (1 ≤ N ≤ 105)

그 뒤로 N-1개의 줄에 걸쳐, 트리의 각 간선이 잇는 두 정점의 번호가 공백을 사이에 두고 주어진다.

출력

간선 2개를 추가했을 때, 사이클에 속하게 되는 정점 개수의 최댓값을 출력하시오.

예제2

  1. 예제 1

    입력
    8
    1 2
    2 3
    3 4
    4 5
    5 6
    6 7
    7 8
    
    예상 출력
    8
    
  2. 예제 2

    입력
    8
    1 2
    1 3
    2 4
    2 5
    3 6
    3 7
    2 8
    
    예상 출력
    7