연세대학교 포인트 게임

트리의 정점을 파랗게 칠하면서 주어진 정점에서 칠해진 모든 정점까지의 거리 합을 구합니다.

보통7분할 정복트리DFS아직 제출이 없습니다시간 제한5초메모리 제한128 MB

문제

2학년이 된 연돌이는 신입생 오리엔테이션에서 진행할 교내 포인트 게임을 맡았다. 포인트 게임은 교내 곳곳의 시설을 찾아가 그 자리에서 미션을 수행하며 위치를 익히는 게임이다. 보통은 한 장소에서 미션을 마치면 다음 장소로 넘어가고 그 장소에는 다시 오지 않는다. 작년에 직접 참가했던 연돌이는 이 방식으로는 위치가 잘 외워지지 않는다고 느꼈다.

그래서 연돌이는 규칙을 새로 만들었다.

게임은 교내 NN곳에서 진행하며, 장소에는 00번부터 N1N-1번까지 번호가 붙어 있다. NN곳은 N1N-1개의 도로로 이어져 트리를 이룬다. 도로는 양방향이고 사이클이 없으며, 어느 장소에서든 나머지 모든 장소로 갈 수 있다. 도로마다 길이는 다를 수 있다. 두 장소 사이의 거리는 두 장소를 잇는 유일한 경로에 놓인 도로 길이의 합이다.

참가자는 QQ개의 미션을 주어진 순서대로 수행한다. 미션은 두 종류다.

  1. 장소 AA에 방문해 파란 락커를 칠한다. 이미 칠해진 장소라면 아무것도 바뀌지 않는다.
  2. 장소 AA에서 파란 락커가 칠해진 모든 장소까지의 거리를 모두 더한 값을 구한다.

게임을 시작할 때는 어느 장소에도 락커가 칠해져 있지 않다. 락커가 하나도 칠해지지 않은 상태에서 두 번째 미션이 주어지면 그 답은 00이다.

연돌이는 두 번째 미션의 답을 구하지 못했다. 연돌이를 대신해 답을 구하라.

입력

첫 줄에 장소의 개수 NN (1N1000001 \le N \le 100000)이 주어진다.

이어지는 N1N-1개 줄 중 ii번째 줄 (1iN11 \le i \le N-1)에는 두 정수 AiA_i, BiB_i (0Ai<i0 \le A_i < i, 1Bi1001 \le B_i \le 100)가 주어진다. 장소 ii와 장소 AiA_i가 길이 BiB_i인 도로로 이어져 있다는 뜻이다.

다음 줄에 미션의 개수 QQ (1Q1000001 \le Q \le 100000)가 주어진다.

이어지는 QQ개 줄에는 두 정수 CiC_i, DiD_i (CiC_i11 또는 22, 0Di<N0 \le D_i < N)가 수행 순서대로 주어진다. CiC_i11이면 DiD_i번 장소에 파란 락커를 칠하고, CiC_i22이면 DiD_i번 장소에서 락커가 칠해진 모든 장소까지의 거리 합을 구한다.

출력

Ci=2C_i = 2인 미션마다 거리의 합을 한 줄에 하나씩, 입력에 주어진 순서대로 출력한다.