만드는 중입니다

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

어떤 우유의 배달목록 (Easy)

면접 대비

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

요약
트리에서 1번 질의는 u에서 v로 가는 경로의 각 방에 1, 2, 3, ...을 차례로 더하고, 2번 질의는 한 방에 지금까지 더해진 값을 묻는다.
난이도

보통10점 중 4점

유형
트리, 누적 합, DFS, 구현
정답자
아직 제출이 없습니다

문제

이 문제는 "어떤 우유의 배달목록 (Hard)" 문제와 NN, QQ의 제한을 제외하고 같다.

SASA의 기숙사에는 NN개의 방과 사감의 감시를 피하기 위해 만든 N−1N-1개의 비밀 통로가 있다. 각 방에는 11번부터 NN번까지의 번호가 붙어 있다. 비밀 통로는 서로 다른 두 방을 양방향으로 연결하며, 임의의 두 방 사이를 비밀 통로를 통해 같은 방을 여러 번 지나지 않고 이동할 수 있는 경로가 정확히 한 개 있다. 우유 배달을 하는 태영이는 선배들의 주문을 여럿 받아서 우유를 배달한다.

각 주문은 출발하는 방과 도착하는 방으로 이루어져 있다. 태영이는 출발하는 방에서 도착하는 방까지의 경로에 있는 모든 방에 우유를 배달하며, 출발하는 방을 제외하고 ii번째로 방문하는 방에 ii개의 우유를 배달한다.

태영이는 정신 없이 우유 배달을 하느라 우유를 얼마나 배달했는지 기억나지 않는다. 이제까지 배달한 우유의 수를 보고해야 하는 태영이를 위해, 실시간으로 배달한 우유의 수를 구하는 프로그램을 작성해 주자. 이 프로그램은 다음 두 종류의 쿼리를 처리해야 한다.

  • 1 uu vv: 태영이가 주문을 받아, 우유를 uu번 방부터 vv번 방까지 배달한다.
  • 2 xx: 태영이가 지금까지 xx번 방에 배달한 우유의 총 개수를 출력한다.

입력

첫째 줄에 방의 개수 NN이 주어진다.

둘째 줄부터 N−1N-1개의 줄의 ii번째 줄에는 aia_i와 bib_i가 공백으로 구분되어 주어지며, 이는 aia_i번 방과 bib_i번 방이 비밀 통로로 연결되어 있다는 것을 의미한다.

N+1N+1번째 줄에는 쿼리의 개수 QQ가 주어진다.

다음 QQ개의 줄의 ii번째 줄에는 ii번째 쿼리가 다음과 같은 형태로 주어진다.

  • 1번 쿼리는 ti=1t_i = 1, 출발하는 방의 번호 uiu_i, 도착하는 방의 번호 viv_i가 공백으로 구분되어 주어진다.
  • 2번 쿼리는 ti=2t_i = 2와 지금까지 배달한 우유의 총 개수를 계산해야 하는 방의 번호 xix_i가 공백으로 구분되어 주어진다.

출력

2번 쿼리의 결과를 한 줄에 하나씩 차례대로 출력한다.

제한

  • 1≤N,Q≤1 0001 \leq N, Q \leq \textbf{1 000}
  • 1≤ai,bi≤N1 \le a_i, b_i \le N (1≤i≤N−11 \le i \le N-1)
  • 임의의 두 방 사이를 비밀 통로를 통해 같은 방을 여러 번 지나지 않고 이동할 수 있는 경로가 정확히 한 개 있다.
  • ti=1t_i = 1일 때, 1≤ui,vi≤N1 \le u_i, v_i \le N (1≤i≤N1 \le i \le N)
  • ti=1t_i = 1일 때, ui≠viu_i \ne v_i (1≤i≤N1 \le i \le N)
  • ti=2t_i = 2일 때, 1≤xi≤N1 \le x_i \le N
  • ti=2t_i = 2인 쿼리가 한 개 이상 주어진다.

예제1

  1. 예제 1

    입력
    5
    1 2
    2 3
    3 4
    2 5
    5
    1 3 5
    1 4 5
    1 1 2
    2 2
    2 5
    
    예상 출력
    4
    5