트리의 MEX

아직 제출이 없습니다시간 제한2초메모리 제한1024 MB

문제

NN개의 정점으로 구성된 루트 있는 트리가 있다. 각 정점은 11번부터 NN번까지 번호가 매겨져 있고, 각 정점에는 00 이상 NN 미만의 정수 값이 적혀 있다.

주어진 트리에서 모든 정점에 대해 mex(i)mex(i)를 구해야 한다. mex(i)mex(i)ii번 정점을 루트로 하는 서브 트리의 정점에 적혀 있지 않은 수 중에서 가장 작은 음이 아닌 정수이다.

11이상 NN이하의 모든 정수 ii에 대해 mex(i)mex(i)를 출력하여라.

입력

첫째 줄에 정점의 수 NN이 주어진다. (1N200,000)(1 \leq N \leq 200\\,000)

둘째 줄에 11번 정점부터 NN번 정점까지 각 정점의 부모 정점의 번호 p_ip\_i가 주어진다. 만약 부모 정점이 없다면 대신 1-1이 주어진다. 입력으로 주어지는 그래프는 트리임이 보장된다.

셋째 줄에 11번 정점부터 NN번 정점까지 각 정점에 적힌 값 v_iv\_i가 주어진다. (0v_i<N)(0 \leq v\_i < N)

출력

NN개의 줄에 걸처 각 정점의 mex(i)mex(i)를 출력한다. ii번째 줄에는 mex(i)mex(i)를 출력한다.