만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

경로 위의 첫 검은 정점

시간 제한2초메모리 제한512 MB

요약
정점의 색을 뒤집는 갱신과 함께, 루트에서 v까지의 경로에서 처음 만나는 검은 정점을 찾아 출력한다.
난이도

보통10점 중 7점

유형
트리, 세그먼트 트리, DFS
정답자
아직 제출이 없습니다

문제

정점이 NN개인 트리가 있다. 트리는 사이클이 없는 연결 무방향 그래프다. 정점에는 1번부터 NN번까지 번호가 붙어 있고, 처음에는 모든 정점이 흰색이다.

아래 두 쿼리를 입력에 주어진 순서대로 처리하는 프로그램을 작성하시오.

  • 1 i: ii번 정점의 색을 반대로 바꾼다. 흰색이면 검은색이 되고, 검은색이면 흰색이 된다.
  • 2 v: 1번 정점에서 vv번 정점으로 가는 경로를 1번 정점 쪽부터 따라가면서 처음 만나는 검은 정점의 번호를 출력한다. 경로에 검은 정점이 하나도 없으면 -1을 출력한다.

경로에는 1번 정점과 vv번 정점도 포함된다. 트리에서 두 정점을 잇는 경로는 하나뿐이므로 각 쿼리의 답은 하나로 정해진다.

입력

첫째 줄에 정점의 개수 NN이 주어진다. (2≤N≤1000002 \le N \le 100000)

둘째 줄부터 N−1N-1개의 줄에는 간선 하나가 잇는 두 정점의 번호 uu와 vv가 주어진다. (1≤u,v≤N1 \le u, v \le N, u≠vu \ne v) 주어지는 간선 N−1N-1개는 항상 트리를 이룬다.

다음 줄에 쿼리의 개수 MM이 주어진다. (1≤M≤1000001 \le M \le 100000)

이어지는 MM개의 줄에는 쿼리가 한 줄에 하나씩 1 i 또는 2 v 형식으로 주어진다. (1≤i,v≤N1 \le i, v \le N)

출력

2번 쿼리마다 답을 한 줄에 하나씩, 입력에 주어진 순서대로 출력한다.

예제7

  1. 예제 1

    입력
    9
    1 2
    1 3
    2 4
    2 9
    5 9
    7 9
    8 9
    6 8
    8
    2 3
    1 8
    2 6
    2 7
    1 2
    2 9
    1 2
    2 9
    
    예상 출력
    -1
    8
    -1
    2
    -1
    
  2. 예제 2

    입력
    2
    1 2
    5
    2 2
    1 1
    2 2
    1 2
    2 2
    
    예상 출력
    -1
    1
    1
    
  3. 예제 3

    입력
    3
    1 2
    2 3
    7
    2 1
    1 1
    2 1
    2 3
    1 1
    1 3
    2 3
    
    예상 출력
    -1
    1
    1
    3
    
  4. 예제 4

    입력
    6
    1 2
    2 3
    3 4
    4 5
    5 6
    9
    1 5
    1 3
    2 6
    1 3
    2 6
    1 2
    2 6
    2 4
    1 2
    
    예상 출력
    3
    5
    2
    2
    
  5. 예제 5

    입력
    7
    1 2
    1 3
    1 4
    1 5
    1 6
    1 7
    8
    1 1
    2 5
    1 1
    1 5
    2 5
    2 6
    1 6
    2 6
    
    예상 출력
    1
    5
    -1
    6
    
  6. 예제 6

    입력
    5
    1 2
    2 3
    3 4
    4 5
    10
    1 1
    1 2
    1 3
    1 4
    1 5
    2 5
    2 4
    2 3
    2 2
    2 1
    
    예상 출력
    1
    1
    1
    1
    1
    
  7. 예제 7

    입력
    8
    8 3
    3 5
    5 1
    1 7
    7 2
    2 4
    4 6
    10
    2 6
    1 5
    2 6
    1 1
    2 6
    2 8
    1 5
    2 6
    1 1
    2 6
    
    예상 출력
    -1
    -1
    1
    1
    1
    -1