같은 n명의 직원에 대한 두 개의 루트 트리가 주어질 때, 각 직원마다 두 트리 모두에서 자신의 후손인 사람 수를 센다.
어려움8트리DFS누적 합정렬아직 제출이 없습니다시간 제한0.5초메모리 제한1024 MBJanuszPol은 오랜 전통이 있는 폴란드 기업이다. 그런데 최근 자금 사정이 크게 나빠져 결국 외국 경쟁사에 인수되었다. 새 이사회는 회사 조직을 처음부터 다시 짜기로 했다. 지금까지 조직은 전형적인 트리 구조였다.
트리에서 직원 x 아래에 있는 직원 y를 x의 부하라고 한다. 즉 y에서 직속 상사를 따라 계속 올라가면 x에 도달하는 경우다.
인수 이후에도 회사는 같은 사람을 그대로 고용하고 조직도 트리로 유지하지만, 모든 직원이 다른 자리를 받기 때문에 트리 모양은 완전히 달라질 수 있다. 다만 대표이사는 자리를 그대로 지킨다. 지금은 아무도 남에게 지시를 내리려 하지 않는다. 당장 내일이라도 부하가 상사가 될 수 있기 때문이다.
인수 전과 인수 후의 트리가 주어진다. 각 직원 x마다 인수 전에도 x의 부하였고 인수 후에도 x의 부하로 남는 사람이 몇 명인지 구하여라.
첫째 줄에 직원 수 n (2≤n≤200000)이 주어진다. 직원의 번호는 1번부터 n번까지이고, 1번이 대표이사다. 둘째 줄에는 인수 전 조직 구조를 나타내는 n−1개의 수 a2,a3,…,an이 주어진다. ai는 i번 직원의 상사 번호다. 셋째 줄에도 n−1개의 수 b2,b3,…,bn이 주어지며, bi는 인수 후 i번 직원의 상사 번호다. 두 구조 모두 1번을 루트로 하는 올바른 트리를 이룬다.
한 줄에 n개의 수를 공백으로 구분해 출력한다. i번째 수는 두 트리에서 동시에 i번 직원의 부하인 사람의 수다.