트리 부수기
시간 제한1초메모리 제한1024 MB
트리를 0번 노드 기준으로 뿌리내린 뒤, 각 노드 x를 제거했을 때 0번에서 도달 가능한 노드 v의 비트를 XOR하여 출력한다.
문제
번부터 번까지 개의 노드를 가진 트리가 주어진다. 두 노드 와 에 대하여 를 다음과 같이 정의하자.
= 번 노드와 연결된 모든 간선을 제거한 뒤에도 번 노드와 번 노드를 잇는 경로가 존재한다면 , 그렇지 않다면 .
자리 이진수로 표현되는 함수 를 다음과 같이 정의하자. 여기서 는 을 만족하는 정수이다.
\[ f(x) = \left( c(x, N-1)c(x, N-2)\dots c(x, 1) \right)_{(2)} \]
예시로 주어진 아래의 트리에서 의 값을 구해보자.

번 노드와 연결된 모든 간선을 제거했다고 가정해 보자. 이 경우 번 노드에서 번 노드로 가는 경로는 존재하지 않으므로 이다. 반면, 여전히 번 노드에서 번 노드로 가는 경로는 존재하므로 이다. 같은 원리로 다른 노드에 대한 값들도 구할 수 있고, 최종적으로 이다.
이제 다음의 값을 구해보자.
는 bitwise XOR 연산자이다. 자세한 설명은 여기를 참고하라.
입력
첫 번째 줄에 노드의 개수 이 주어진다.
두 번째 줄부터 개의 줄에 걸쳐 트리의 각 간선이 잇는 두 노드의 번호 가 공백으로 구분되어 주어진다.
출력
의 값을 자리 이진수로 출력한다.
가장 오른쪽 비트는 이다. 출력 순서에 유의하라.