꽁꽁 얼어붙은 트리
시간 제한1초메모리 제한512 MB
d가 2부터 N까지일 때 루트에서 부모 또는 자식 방향으로 정확히 d칸씩 이동해 도달할 수 있는 노드 수를 세고, 그 최댓값을 출력한다.
문제
노드가 개인 꽁꽁 얼어붙은 트리 위로 고양이가 걸어 다니려고 한다. 루트 노드는 번 노드이며, 트리를 이루는 모든 간선의 거리는 이다.
마리의 고양이가 번 노드에 멈춰있고, 다른 노드로 걸어 다니기 위해 준비하고 있다. 하지만 이 트리는 꽁꽁 얼어붙어서, 각 고양이가 갖고 있는 고유한 제동지수에 따라 노드를 미끄러지면서 이동해야 한다. 마리 고양이의 제동지수 는 각각 이다.
고양이는 1회 이동 시 부모 방향(루트 방향) 혹은 자식 방향 중 하나를 선택하고, 그 방향으로만 간선을 따라 정확히 제동지수 만큼 미끄러진 후 도착한 노드에 멈춰있을 수 있다. 즉, 이상 미만으로 미끄러졌으나 루트 혹은 리프노드에 도착하도록 이동할 수 없다.
마리의 고양이는 부모 방향 혹은 자식 방향으로 원하는 횟수만큼 이동할 수 있다. 각 고양이가 번 노드를 포함해 멈춰있을 수 있는 노드의 개수를 구했을 때, 이 값들 중 가장 큰 값을 구해주자.
입력
첫째 줄에 꽁꽁 얼어붙은 트리의 노드 개수 이 주어진다.
둘째 줄에 이 공백으로 구분되어 주어진다. 번째 수는 번 노드의 부모 노드 번호를 의미한다.
입력은 항상 트리임이 보장된다.
출력
마리 고양이들이 번 노드를 포함해 멈춰있을 수 있는 노드의 개수를 구했을 때, 이 값들 중 가장 큰 값을 하나의 정수로 출력한다.
힌트
루트 노드는 부모 노드가 없는 노드를, 리프 노드는 자식 노드가 없는 노드를 의미한다.