골드버그 기계
시간 제한5초메모리 제한512 MB
트리의 각 노드가 활성 간선을 순환하며 바꾸는 구조에서, 노드 1에서 출발한 구슬이 x번 이동한 뒤의 위치를 구하고 활성 간선 변경 질의를 처리합니다.
문제
루베는 새로 만든 정체를 알 수 없는 장치를 시험하고 있습니다. 이 기계에는 1번부터 번까지 번호가 붙은 노드 개가 있고, 각 노드는 구슬을 하나씩 담을 수 있습니다. 노드들은 개의 트랙으로 이어져 있습니다. 트랙을 따라가면 어느 노드에서든 다른 모든 노드에 갈 수 있으므로, 트랙은 무방향 트리를 이룹니다.
각 노드에 인접한 트랙에는 순서가 정해져 있습니다. 노드 에 인접한 트랙이 개라면 그 순서를 로 씁니다. 각 노드에는 활성 트랙이 하나 선택되어 있습니다. 는 트랙 가 노드 의 활성 트랙임을 뜻합니다.
기계는 다음과 같이 작동합니다. 먼저 구슬을 노드 1에 놓습니다. 그다음 한 단계 이상이 진행되며, 각 단계는 다음과 같습니다.
- 구슬이 노드 에 있으면, 활성 트랙 의 반대쪽 끝 노드로 이동합니다.
- 구슬이 옮겨 간 뒤, 단계 시작 시 구슬이 있던 노드는 활성 트랙을 순환 순서상 다음 트랙으로 바꿉니다. 즉 는 가 됩니다.
루베는 다음 두 종류의 질의를 처리하려고 합니다.
C v t(, ): 를 로 설정합니다.Q x(): 현재 설정에서 노드 1을 출발해 정확히 단계를 진행한 뒤 구슬이 있는 노드의 번호를 구합니다. 이 질의는 이후 질의의 시작 설정을 바꾸지 않습니다.
루베는 장치를 만지작거리느라 바쁘니, 빠르게 답해 주세요.
입력
첫 줄에 노드 수 ()이 주어집니다.
이어지는 개 줄 중 번째 줄에는 정수 , ()와 개의 정수 이 주어집니다. 이는 노드 에 인접한 트랙이 개이고, 트랙 가 에서 로 이어지며, 트랙 가 현재 노드 의 활성 트랙이라는 뜻입니다. 단, 입니다.
주어진 트랙은 무방향 트리를 이룹니다.
- 서로 다른 두 노드 , 에 대해, 가 에 인접한 트랙의 끝점이면 도 에 인접한 트랙의 끝점입니다.
- 서로 다른 트랙은 개이며, 입니다.
- 어떤 노드에서든 트랙을 따라 다른 모든 노드에 갈 수 있습니다.
다음 줄에는 질의 수 ()가 주어집니다. 이어지는 개 줄에는 위에서 설명한 C v t 또는 Q x 형식의 질의가 한 줄에 하나씩 주어집니다.
출력
각 Q x 질의에 대해, 주어진 순서대로 답을 한 줄에 하나씩 출력합니다.
힌트
주어진 입력에서 구슬이 이동하는 경로는 다음과 같습니다.
1 → 2 → 1 → 3 → 1 → 2 → 4 → 2 → 5 → 2 → 1
1 → 2 → 4 → 2 → 5 → 2 → 1 → 3 → 1 → 2 → 4
1 → 2 → 4 → 2 → 5 → 2 → 1 → 3 → 7 → 3 → 1