루트가 있는 트리에서 각 노드보다 값이 큰 자손의 수를 센다.
보통7트리DFS세그먼트 트리아직 제출이 없습니다시간 제한2초메모리 제한512 MB소들이 또다시 스타트업을 차리려 한다. 소는 형편없는 관리자라는 사실을 지난 경험에서 배우지 못한 것이다!
소들에게는 1부터 N까지 번호가 붙어 있다 (1≤N≤100,000). 회사는 트리 구조로 조직되며, 1번 소가 사장(트리의 루트)이다. 사장을 제외한 모든 소에게는 관리자가 정확히 한 명 있다(트리에서의 "부모"). 소 i에게는 업무 능력을 나타내는 능력치 p(i)가 있으며, 모든 소의 능력치는 서로 다르다. 소 i가 소 j의 조상이면(예를 들어 관리자의 관리자의 관리자), j를 i의 부하라고 한다.
안타깝게도 관리자가 여러 부하보다 능력치가 낮은 경우가 자주 있고, 이럴 때 관리자는 부하 몇 명을 승진시키는 것을 고려해야 한다. 이런 상황을 파악하도록 소들을 도와주자. 회사의 모든 소 i에 대해, p(j)>p(i)인 부하 j의 수를 구하라.
첫째 줄에 N이 주어진다.
다음 N개의 줄에는 소들의 능력치 p(1),p(2),…,p(N)이 한 줄에 하나씩 주어진다. 각 능력치는 1 이상 1,000,000,000 이하의 정수이며 모두 서로 다르다.
다음 N−1개의 줄에는 2번 소부터 N번 소까지 각 소의 관리자(부모) 번호가 차례로 주어진다. 1번 소는 사장이므로 관리자가 없다.
N개의 줄을 출력한다. i번째 줄에는 소 i의 부하 중 소 i보다 능력치가 높은 소의 수를 출력한다.