SOJ ONLINE JUDGE

문제 101

가장 가까운 표시 정점

내 상태
미제출
난이도
101번 문제 난이도 보기
Diamond IV
출제자
rlatjwls7882
시간 제한
3000 ms
메모리 제한
1024 MB
101번 문제 태그 보기
센트로이드 분할최소 공통 조상트리

$1$번부터 $N$번까지 번호가 붙은 정점으로 이루어진 트리가 주어진다. 두 정점 사이의 거리는 두 정점을 잇는 단순 경로에 포함된 간선의 수이다. 처음에는 $1$번 정점만 표시되어 있다.

$Q$개의 쿼리가 순서대로 주어진다. 쿼리는 다음 중 하나이다.

  • 1 v: $v$번 정점을 표시한다. 이미 표시되어 있다면 상태는 바뀌지 않는다.
  • 2 v: $v$번 정점에서 표시된 정점까지의 거리의 최솟값을 구한다.

모든 2 v 쿼리의 답을 구해보자.

입력

첫 번째 줄에 두 정수 $N$, $Q$가 공백으로 구분되어 주어진다. $(1 \le N, Q \le 200\,000)$

두 번째 줄부터 $N-1$개의 줄에 걸쳐 $i$번째 간선의 양 끝 정점을 나타내는 두 정수 $a_i$, $b_i$가 공백으로 구분되어 주어진다. $(1 \le a_i, b_i \le N; a_i \ne b_i)$

주어진 간선들은 트리를 이룬다.

그다음 줄부터 $Q$개의 줄에 걸쳐 $i$번째 쿼리를 나타내는 두 정수 $t_i$, $v_i$가 공백으로 구분되어 주어진다. $(1 \le t_i \le 2; 1 \le v_i \le N)$

출력

각 2 v 쿼리의 답을 한 줄에 하나씩 출력한다.

예제 입력 1

5 8
1 2
2 3
2 4
4 5
2 5
1 4
2 5
2 3
1 3
2 3
2 1
2 5

예제 출력 1

3
1
2
0
0
1

예제 입력 2

1 4
2 1
1 1
2 1
2 1

예제 출력 2

0
0
0

제출

편집기에서 나가려면 Esc를 누른 뒤 Tab 또는 Shift와 Tab을 누르세요.