트리와 쿼리 5
시간 제한2초메모리 제한512 MB
정점이 검은색과 흰색을 오가는 트리에서, 주어진 정점에서 가장 가까운 흰색 정점까지의 거리를 각 질의마다 구한다.
문제
개의 정점으로 이루어진 트리가 있다. 트리는 사이클이 없는 연결 무방향 그래프다. 정점에는 1번부터 번까지, 간선에는 1번부터 번까지 번호가 붙어 있다. 처음에는 모든 정점이 검은색이다.
아래 두 종류의 쿼리를 처리하는 프로그램을 작성하시오.
1 i: 번 정점의 색을 뒤집는다. 검은색이면 흰색으로, 흰색이면 검은색으로 바꾼다.2 v: 흰색 정점 중에서 까지의 거리가 가장 짧은 값을 출력한다. 와 는 같아도 되므로 가 흰색이면 답은 0이다. 트리에 흰색 정점이 하나도 없으면 -1을 출력한다.
두 정점 사이의 거리는 두 정점을 잇는 경로에 놓인 간선의 개수다.
입력
첫째 줄에 정점의 개수 이 주어진다. ()
다음 개의 줄에는 번 간선이 잇는 두 정점 번호 와 가 주어진다. ()
그다음 줄에 쿼리의 개수 이 주어진다. ()
다음 개의 줄에는 쿼리가 한 줄에 하나씩 주어진다. 각 쿼리는 1 i 또는 2 v 형태이고, 이다.
출력
2번 쿼리마다 답을 한 줄에 하나씩, 입력에 주어진 순서대로 출력한다.