뉴스 전파

면접 대비

시간 제한2초메모리 제한128 MB

요약
루트가 있는 트리에서 뉴스를 아는 직원이 한 번에 부하 한 명에게만 전화를 걸 수 있고 통화는 1분씩 걸릴 때, 모든 직원이 뉴스를 듣는 최소 시간을 구한다.
난이도

보통10점 중 6점

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

문제

회사에는 0번부터 N-1번까지 번호가 붙은 직원이 있고, 0번 직원이 회사 전체에 전할 중요한 뉴스를 알고 있다. 회사의 직속 상사 관계는 트리 구조이며, 0번을 제외한 모든 직원은 정확히 한 명의 직속 상사를 가진다. 모든 직원은 0번 직원의 직접 또는 간접 부하다.

뉴스를 들은 직원은 자신의 직속 부하에게만 전화를 걸 수 있다. 한 직원은 한 번에 한 명에게만 전화할 수 있고, 전화 한 통에는 정확히 1분이 걸린다. 전화를 받은 부하는 그 뒤부터 자신의 직속 부하들에게 같은 방식으로 뉴스를 전할 수 있다.

각 직원이 직속 부하에게 전화하는 순서를 적절히 정했을 때, 모든 직원이 뉴스를 듣는 데 걸리는 최소 시간을 구하시오.

입력

첫째 줄에 직원의 수 N이 주어진다.

둘째 줄에는 0번 직원부터 N-1번 직원까지의 직속 상사 번호가 순서대로 주어진다. 0번 직원은 상사가 없으므로 -1이 주어지고, 나머지 직원의 상사 번호는 음이 아닌 정수이다. 입력은 유효한 트리 구조를 이룬다.

N은 50 이하의 자연수이다.

출력

모든 직원에게 뉴스가 전달되는 데 필요한 최소 시간을 분 단위로 출력한다.

예제4

  1. 예제 1

    입력
    3
    -1 0 0
    
    예상 출력
    2
    
  2. 예제 2

    입력
    5
    -1 0 0 2 2
    
    예상 출력
    3
    
  3. 예제 3

    입력
    5
    -1 0 1 2 3
    
    예상 출력
    4
    
  4. 예제 4

    입력
    24
    -1 0 0 1 1 1 2 2 3 3 4 4 5 5 6 7 7 8 12 13 14 16 16 16
    
    예상 출력
    7