트리와 쿼리 21

아직 제출이 없습니다시간 제한5초메모리 제한1024 MB

문제

NN 개의 정점으로 이루어진 트리가 있다. 정점은 00번부터 N1N-1 번까지 번호가 매겨져 있다. 간선에는 음이 아닌 정수 가중치가 매겨져 있다.

다음과 같은 쿼리를 수행해야 한다.

  • 1 u v w x: uuvv 를 잇는 간선을 제거하고, vvww 를 잇는 가중치 xx 의 간선을 추가한다. uuvv 를 잇는 간선이 존재함이 보장된다. 연산을 진행한 이후 그래프가 여전히 트리임이 보장된다. (0x100,0000 \le x \le 100\\,000)
  • 2 k x1 x2 ... xk: 정점 x_1,x_2,,x_kx\_1, x\_2, \ldots, x\_k 에 대해서, 모든 1i<jk1 \le i < j \le k 에 대해 x_ix\_ix_jx\_j 를 잇는 유일한 단순 경로를 생각해 보자. 이 단순 경로를 이루는 간선의 합집합에 포함되는 모든 간선의 가중치 합을 출력해야 한다. 모든 x_ix\_i 는 서로 다르다. (1kn1 \le k \le n)

입력

첫째 줄에 트리의 크기 N이 주어진다. (2 ≤ N ≤ 100,000)

다음 N-1 개의 줄에 세 정수 u, v, w 가 주어진다. 두 정점 u, v를 잇는 가중치 w의 간선이 존재함을 뜻한다. (0 ≤ u, v ≤ N - 1, 0 ≤ w ≤ 100,000)

다음 줄에 쿼리의 개수 Q가 주어진다. (1 ≤ Q ≤ 100,000)

다음 Q개의 줄에 위에서 설명한 것과 같은 쿼리가 주어진다.

2번 쿼리의 k 의 합은 1 이상 100,000 이하이다.

출력

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