만드는 중입니다

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

불꽃놀이의 아름다움

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

요약
루트가 있는 트리 T와 자연수 m이 주어질 때, T를 m제곱한 트리에서 가장 많은 정점을 지나는 경로의 정점 수를 구합니다.
난이도

보통10점 중 7점

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

문제

이론 폭죽 연구실에서는 새로운 불꽃놀이 구성 기술을 연구한다. 불꽃놀이는 뿌리가 있는 트리로 표현된다. 강한 불꽃놀이에서는 구성 요소도 터지며 새로운 불꽃놀이를 만들기 때문에, 연구진은 뿌리가 있는 트리를 거듭제곱하는 연산을 정의한다.

뿌리가 있는 트리는 정점을 하나 이상 가진다. 정점 하나가 뿌리로 지정되고, 나머지 각 정점에는 부모 정점이 정확히 하나 있다. 어느 정점에서든 부모를 따라 계속 올라가면 뿌리에 도달한다. 다른 정점의 부모가 아닌 정점을 잎이라고 한다. 정점 x가 정점 y의 부모이면 y는 x의 자식이다. 정점과 그 부모는 간선으로 연결된다.

그림 1. 뿌리가 1이고 잎이 3과 4인 뿌리 있는 트리의 예.

불꽃놀이는 기본 트리 T와 거듭제곱 m으로 주어진다. 불꽃놀이의 트리는 T를 m제곱한 결과이다. m이 1이면 결과 T1은 T 자체이다. m이 1보다 크면 트리 T(m-1)을 본다. T(m-1)의 각 잎 x마다 T의 사본을 만들고, x를 그 사본 뿌리의 부모로 지정한다. 이렇게 얻은 트리가 Tm이다.

그림 2. 그림 1의 트리를 거듭제곱 1, 2, 3으로 올린 결과.

트리에서 경로는 인접한 두 정점이 간선으로 이어진 정점들의 나열이다. 경로에 나오는 정점은 모두 서로 달라야 한다.

불꽃놀이의 아름다움은 그 트리의 경로가 포함할 수 있는 정점 수의 최댓값이다. 기본 트리 T와 거듭제곱 2인 경우, 그림 3의 경로가 정점을 가장 많이 포함하며 아름다움은 10이다.

그림 3. T2에서 정점을 가장 많이 포함하는 경로.

기본 트리 T와 자연수 m이 주어질 때, 기본 트리 T와 거듭제곱 m인 불꽃놀이의 아름다움을 구하는 프로그램을 작성하라.

입력

첫 줄에 자연수 n과 m이 주어진다. n은 기본 트리 T의 정점 수이고 m은 거듭제곱이다. 제약은 3≤n≤2000003 \le n \le 200000, 1≤m≤2000001 \le m \le 200000이다.

둘째 줄에는 n-1개의 정수 p2,p3,…,pnp_2, p_3, \ldots, p_n이 주어진다. pip_i는 정점 i의 부모 번호이며, 1≤pi≤i−11 \le p_i \le i - 1을 만족한다.

출력

트리 TmT^m으로 표현되는 불꽃놀이의 아름다움을 나타내는 정수 하나를 출력한다.

예제1

  1. 예제 1

    입력
    4 2
    1 1 2
    
    예상 출력
    10