트리로 만드는 힙
시간 제한2초메모리 제한512 MB
각 노드에 값이 있는 루트 트리에서, 조상과 자손 관계인 모든 쌍이 조상의 값이 더 크도록 하는 가장 큰 부분집합의 크기를 구한다.
문제
노드가 개인 루트 있는 트리가 주어진다. 노드에는 부터 까지 번호가 붙어 있고 번 노드가 루트이다. 각 노드 에는 값 가 적혀 있다.
이 트리를 힙으로 만들려고 한다. 즉 다음 힙 성질을 만족하는 노드 부분집합 중 가장 큰 것을 고르려고 한다. 부분집합에 속한 모든 노드 쌍 에 대해, 트리에서 노드 가 노드 의 조상이라면 이어야 한다.
값이 같은 경우는 허용되지 않는다. 이런 부분집합으로 고를 수 있는 노드 개수의 최댓값을 구하라. 고른 부분집합이 서브트리를 이룰 필요는 없다.
입력
입력은 테스트 케이스 하나로 이루어진다.
첫째 줄에 트리의 노드 개수 ()이 주어진다. 노드 번호는 부터 까지이다.
다음 개의 줄에는 노드 정보가 번호 순서대로 주어진다. 번째 줄에는 두 정수 와 가 주어진다. ()는 노드에 적힌 값이고 ()는 부모 노드의 번호이다. 모든 노드의 번호는 부모 노드의 번호보다 크다. 부모가 없는 루트인 번 노드만 이고, 나머지 노드 ()는 이다.
출력
힙 성질을 만족하는 부분집합 중 가장 큰 것의 노드 개수를 정수 하나로 출력한다.