적대적 인수 이후의 회사 생활

같은 n명의 직원에 대한 두 개의 루트 트리가 주어질 때, 각 직원마다 두 트리 모두에서 자신의 후손인 사람 수를 센다.

어려움8트리DFS누적 합정렬아직 제출이 없습니다시간 제한0.5초메모리 제한1024 MB

문제

JanuszPol은 오랜 전통이 있는 폴란드 기업이다. 그런데 최근 자금 사정이 크게 나빠져 결국 외국 경쟁사에 인수되었다. 새 이사회는 회사 조직을 처음부터 다시 짜기로 했다. 지금까지 조직은 전형적인 트리 구조였다.

  • 상사가 없는 대표이사가 정확히 한 명 있다.
  • 나머지 직원은 모두 직속 상사가 정확히 한 명이고, 순환하는 관계는 없다.

트리에서 직원 xx 아래에 있는 직원 yyxx의 부하라고 한다. 즉 yy에서 직속 상사를 따라 계속 올라가면 xx에 도달하는 경우다.

인수 이후에도 회사는 같은 사람을 그대로 고용하고 조직도 트리로 유지하지만, 모든 직원이 다른 자리를 받기 때문에 트리 모양은 완전히 달라질 수 있다. 다만 대표이사는 자리를 그대로 지킨다. 지금은 아무도 남에게 지시를 내리려 하지 않는다. 당장 내일이라도 부하가 상사가 될 수 있기 때문이다.

인수 전과 인수 후의 트리가 주어진다. 각 직원 xx마다 인수 전에도 xx의 부하였고 인수 후에도 xx의 부하로 남는 사람이 몇 명인지 구하여라.

입력

첫째 줄에 직원 수 nn (2n2000002 \leq n \leq 200\,000)이 주어진다. 직원의 번호는 11번부터 nn번까지이고, 11번이 대표이사다. 둘째 줄에는 인수 전 조직 구조를 나타내는 n1n-1개의 수 a2,a3,,ana_2, a_3, \ldots, a_n이 주어진다. aia_iii번 직원의 상사 번호다. 셋째 줄에도 n1n-1개의 수 b2,b3,,bnb_2, b_3, \ldots, b_n이 주어지며, bib_i는 인수 후 ii번 직원의 상사 번호다. 두 구조 모두 11번을 루트로 하는 올바른 트리를 이룬다.

출력

한 줄에 nn개의 수를 공백으로 구분해 출력한다. ii번째 수는 두 트리에서 동시에 ii번 직원의 부하인 사람의 수다.