트리의 정점을 파랗게 칠하면서 주어진 정점에서 칠해진 모든 정점까지의 거리 합을 구합니다.
보통7분할 정복트리DFS아직 제출이 없습니다시간 제한5초메모리 제한128 MB2학년이 된 연돌이는 신입생 오리엔테이션에서 진행할 교내 포인트 게임을 맡았다. 포인트 게임은 교내 곳곳의 시설을 찾아가 그 자리에서 미션을 수행하며 위치를 익히는 게임이다. 보통은 한 장소에서 미션을 마치면 다음 장소로 넘어가고 그 장소에는 다시 오지 않는다. 작년에 직접 참가했던 연돌이는 이 방식으로는 위치가 잘 외워지지 않는다고 느꼈다.
그래서 연돌이는 규칙을 새로 만들었다.
게임은 교내 N곳에서 진행하며, 장소에는 0번부터 N−1번까지 번호가 붙어 있다. N곳은 N−1개의 도로로 이어져 트리를 이룬다. 도로는 양방향이고 사이클이 없으며, 어느 장소에서든 나머지 모든 장소로 갈 수 있다. 도로마다 길이는 다를 수 있다. 두 장소 사이의 거리는 두 장소를 잇는 유일한 경로에 놓인 도로 길이의 합이다.
참가자는 Q개의 미션을 주어진 순서대로 수행한다. 미션은 두 종류다.
게임을 시작할 때는 어느 장소에도 락커가 칠해져 있지 않다. 락커가 하나도 칠해지지 않은 상태에서 두 번째 미션이 주어지면 그 답은 0이다.
연돌이는 두 번째 미션의 답을 구하지 못했다. 연돌이를 대신해 답을 구하라.
첫 줄에 장소의 개수 N (1≤N≤100000)이 주어진다.
이어지는 N−1개 줄 중 i번째 줄 (1≤i≤N−1)에는 두 정수 Ai, Bi (0≤Ai<i, 1≤Bi≤100)가 주어진다. 장소 i와 장소 Ai가 길이 Bi인 도로로 이어져 있다는 뜻이다.
다음 줄에 미션의 개수 Q (1≤Q≤100000)가 주어진다.
이어지는 Q개 줄에는 두 정수 Ci, Di (Ci는 1 또는 2, 0≤Di<N)가 수행 순서대로 주어진다. Ci가 1이면 Di번 장소에 파란 락커를 칠하고, Ci가 2이면 Di번 장소에서 락커가 칠해진 모든 장소까지의 거리 합을 구한다.
Ci=2인 미션마다 거리의 합을 한 줄에 하나씩, 입력에 주어진 순서대로 출력한다.