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

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

미식 행사

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

요약
트리의 각 방에 1부터 n까지 서로 다른 점수를 배정하여, 간선을 따라 점수가 증가하는 경로의 개수가 최대가 되도록 하고 그 최댓값을 구합니다.
난이도

어려움10점 중 8점

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

문제

SWERC 조직위원회가 미식 행사를 열고자 한다.

행사 장소는 nn개의 방이 n−1n - 1개의 복도로 연결된 건물이다. 각 복도는 두 방을 잇고, 임의의 방에서 다른 어떤 방으로든 갈 수 있다.

각 방에는 전형적인 이탈리아 요리 시식대를 준비해야 한다. 요리는 nn개이며, 맛의 등급은 11부터 nn까지 매겨져 있다. nn이 가장 좋은 등급이다. nn개의 요리는 등급이 모두 다르다.

nn개의 요리를 nn개의 방에 배정하여 기쁨을 주는 경로의 수가 최대가 되도록 하려 한다. 기쁨을 주는 경로는 다음 조건을 만족하는 방의 비어 있지 않은 수열이다.

  • 수열의 각 방은 다음 방과 복도로 직접 연결되어 있다.
  • 수열 순서대로 본 요리의 등급이 증가한다.

요리를 최적으로 배정했을 때, 기쁨을 주는 경로의 최대 개수는 얼마인가.

입력

첫 줄에 방의 개수 nn이 주어진다 (2≤n≤10000002 \le n \le 1000000).

둘째 줄에는 n−1n - 1개의 정수 p2,p3,⋯ ,pnp_2, p_3, \cdots, p_n이 주어진다 (1≤pi<i1 \le p_i < i). pip_i는 방 ii와 방 pip_i를 잇는 복도가 있음을 뜻한다. 건물은 어느 방에서든 다른 모든 방으로 갈 수 있도록 연결되어 있다고 보장된다.

출력

기쁨을 주는 경로의 최대 개수를 출력한다.

예제2

  1. 예제 1

    입력
    5
    1 2 2 2
    
    예상 출력
    13
    
  2. 예제 2

    입력
    10
    1 2 3 4 3 2 7 8 7
    
    예상 출력
    47