Äventyr 2
시간 제한1초메모리 제한256 MB
트리에서 시간이 지나며 정점이 하나씩 표시되고, 질의한 정점에서 가장 가까운 표시된 정점까지의 거리를 구한다.
문제
"Äventyr bortom tidpunkten, Sista Fiolen."
여러 시간축을 오가며 잊혀진 나라의 전설의 바이올린을 찾으려 한다. 시간축은 트리의 정점으로 나타내고, 트리의 간선은 두 시간축 사이를 오갈 수 있다는 뜻이다. 시간축에는 편의상 부터 까지 번호를 붙인다. 시간축 중 몇몇은 전설의 바이올린이 있는 시간축이고, 나머지는 아니다. 처음에는 바이올린이 있는 시간축이 하나도 없다. 트리가 주어진 뒤 다음 두 종류의 쿼리를 번 수행하라.
1 u: 번 시간축이 바이올린이 있는 시간축이 된다.2 u: 번 시간축에서 출발해 바이올린이 있는 시간축에 도착할 때까지 간선을 최소 몇 번 지나야 하는지 출력한다. 바이올린이 있는 시간축이 하나도 없으면 을 출력한다.
입력
첫째 줄에 과 가 주어진다. ()
둘째 줄에 개의 정수 이 주어진다. 는 트리에서 번 시간축의 부모가 번 시간축이라는 뜻이다. (, ) 주어진 간선은 항상 하나의 트리를 이룬다. 이면 둘째 줄은 비어 있다.
다음 개의 줄에 쿼리가 c v 형식으로 한 줄에 하나씩 주어진다. 이면 1번 쿼리, 이면 2번 쿼리를 수행한다. () 1번 쿼리는 같은 시간축에 두 번 이상 주어지지 않는다.
출력
2번 쿼리마다 그 결과를 한 줄에 하나씩 순서대로 출력한다.