만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

트리 자르기

면접 대비

시간 제한3초메모리 제한1024 MB

요약
트리에서 간선 하나를 끊고 두 부분을 새 간선으로 다시 이을 때 얻을 수 있는 최대 지름을 구합니다.
난이도

보통10점 중 6점

유형
트리, DFS, 동적 계획법
정답자
아직 제출이 없습니다

문제

한 나라에는 1번부터 NN번까지 번호가 붙은 NN개의 도시와 N−1N - 1개의 양방향 고속도로가 있다. 고속도로만 이용해서 어떤 도시에서든 다른 도시로 이동할 수 있다.

두 도시 xx와 yy 사이의 거리는 xx에서 yy로 이동하는 데 필요한 고속도로의 수이다.

주지사는 고속도로 하나를 철거하고 다른 고속도로 하나를 새로 건설하기로 했다. 이때 임의의 두 도시 사이 거리의 최댓값이 최대가 되도록 한다.

이때 가능한 최대 거리의 최댓값을 구하라.

입력

프로그램은 표준 입력에서 읽어야 한다.

첫 줄에는 도시의 수 NN이 주어진다.

이후 N−1N - 1개의 줄에는 각각 도시 uu와 vv를 잇는 고속도로를 나타내는 서로 다른 두 정수 uu와 vv가 주어진다.

출력

프로그램은 표준 출력에 결과를 출력해야 한다.

출력은 한 줄에 정수 하나여야 하며, 새로운 도로망에서 임의의 두 도시 사이 거리의 최댓값이다.

제한

3≤N≤300 0003 \le N \le 300\,000

1≤u,v≤N1 \le u, v \le N

예제2

  1. 예제 1

    입력
    4
    1 2
    1 3
    3 4
    
    예상 출력
    3
    
  2. 예제 2

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