베누스
면접 대비시간 제한1초메모리 제한1024 MB
루트가 있는 트리에서 위험 상태가 바뀔 때마다 위험 상태인 모든 노드의 최소 공통 조상을 구합니다.
문제
베누스는 계층형 행정 구역으로 나뉘어 있다. 행성은 지역으로 나뉘고, 각 지역은 다시 하위 지역으로, 하위 지역은 그 아래 하위 지역으로 나뉠 수 있다. 행정 구역은 모두 개이며 부터 까지 번호가 붙어 있고, 구역 은 행성 전체이다. 따라서 베누스의 행정 구역 분할은 뿌리가 인 트리를 이룬다.
베누스에는 화산이 많아서 주민들은 화산 분출을 늘 걱정한다. 그래서 각 행정 구역에는 화산 활동 대응 센터가 있다. 센터는 해당 구역에 높은 위험 단계가 선포되면 가동된다. 어떤 구역의 위험 단계가 높아도, 그 하위 구역들의 위험 단계는 모두 낮을 수 있다.
대응 센터가 여러 개 동시에 가동 중이면 활동을 조율해야 한다. 높은 위험 단계인 구역을 모두 포함하는 가장 작은 행정 구역이 상황을 지휘한다. 각 행정 구역은 하위 구역이 하나뿐이어도 모든 하위 구역보다 엄격히 크다고 본다.
화산 활동은 자주 바뀐다. 프로그램은 어떤 구역의 위험 단계가 낮음에서 높음으로, 또는 높음에서 낮음으로 바뀌었다는 통보를 받고, 통보가 올 때마다 지금 상황을 지휘해야 할 행정 구역을 찾아야 한다.
입력
첫 줄에 행정 구역의 수 이 주어진다 ().
다음 개의 줄에는 행정 구역을 하나씩 설명한다. 번째 줄에는 먼저 구역 의 하위 구역 수 ()가 주어지고, 이어서 개의 정수 ()가 주어진다. 이는 구역 가 구역 의 하위 구역이라는 뜻이다.
다음 줄에는 통보의 수 ()가 주어진다.
그 다음 개의 줄에는 통보가 하나씩 주어진다. 정수 와 (, )가 주어지며, 은 구역 의 위험 단계가 낮음에서 높음으로 바뀌었다는 뜻이고, 는 높음에서 낮음으로 바뀌었다는 뜻이다.
처음에는 모든 구역의 위험 단계가 낮다. 입력은 서로 모순되지 않는다. 즉 어떤 구역이 높음으로 바뀌었다는 통보는 그 전에 낮음이었을 때만 오고, 그 반대도 마찬가지이다.
출력
개의 줄을 출력한다. 번째 줄에는 입력의 번째 줄에 주어진 통보를 처리한 뒤 상황을 지휘하는 행정 구역의 번호를 출력한다. 모든 구역의 위험 단계가 낮으면 을 출력한다.