아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

관광객

시간 제한4초메모리 제한1024 MB

요약
트리에서 번호 구간의 관광객을 지정한 도시로 옮기고, 도시에서 이벤트를 열어 그곳 관광객의 의견 값을 올립니다. 관광객 한 명의 현재 의견 값을 묻는 질의에 답합니다.
난이도

어려움10점 중 9점

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

문제

유토피아에는 1번부터 nn번까지 번호가 붙은 nn개의 도시가 있다. 도시들은 n−1n-1개의 양방향 도로로 연결되어 있어서, 어떤 두 도시든 이 도로만으로 오갈 수 있다. 유토피아는 매우 아름다워서 1번부터 mm번까지 번호가 붙은 mm명의 관광객이 지금 이 나라를 방문 중이다.

처음에 ii번 관광객은 도시 aia_i에 있다. 같은 도시에 여러 관광객이 있을 수 있으므로, i≠ji \neq j인 두 관광객에 대해 ai=aja_i = a_j일 수도 있다.

각 관광객은 이번 방문이 얼마나 흥미로운지에 대한 의견을 수치로 가진다. 처음에는 모든 관광객의 의견이 0이다. 방문을 늘리기 위해 정부는 골라 둔 도시에서 행사를 연다. 도시 cc에서 행사가 열리면, 그 시점에 도시 cc에 있는 모든 관광객의 의견이 dd만큼 오른다. dd의 값은 행사의 종류에 따라 정해진다.

일부 관광객은 체류하는 동안 도시 사이를 이동할 계획이다. 도로가 효율적이라 이동 시간은 거의 들지 않지만, 그래도 불편하므로 의견이 떨어진다. 구체적으로, 도로 kk개로 이루어진 경로를 지나간 관광객은 의견이 kk만큼 줄어든다. 관광객은 항상 두 도시 사이의 최단 경로를 택한다.

정부의 요청에 따라 관광객의 의견을 추적하라. 질의는 qq개가 주어지며, 입력된 순서대로 모두 처리해서 답해야 한다.

입력

첫 줄에 nn, mm, qq가 주어진다 (2≤n≤200 0002 \le n \le 200\,000, 1≤m,q≤200 0001 \le m, q \le 200\,000).

둘째 줄에 mm개의 정수 a1,a2,…,ama_1, a_2, \ldots, a_m이 주어진다 (1≤ai≤n1 \le a_i \le n).

이어지는 n−1n-1개의 줄에는 각각 두 정수 viv_i와 wiw_i가 주어진다 (1≤vi,wi≤n1 \le v_i, w_i \le n, vi≠wiv_i \neq w_i). 도시 viv_i와 wiw_i 사이에 도로가 있다는 뜻이다.

이어지는 qq개의 줄은 다음 중 하나의 질의이다.

t f g c: (1≤f≤g≤m1 \le f \le g \le m, 1≤c≤n1 \le c \le n) 번호가 ff부터 gg까지인 관광객이 모두 도시 cc로 이동한다. 이미 도시 cc에 있는 관광객은 움직이지 않으며 의견도 바뀌지 않는다.

e c d: (1≤c≤n1 \le c \le n, 0≤d≤1090 \le d \le 10^9) 도시 cc에서 행사가 열려, 그곳에 있는 모든 관광객의 의견이 dd만큼 오른다.

q v: (1≤v≤m1 \le v \le m) 관광객 vv의 현재 의견을 출력한다.

출력

'q' 질의마다 답을 입력 순서대로 한 줄에 하나씩 출력한다.

예제1

  1. 예제 1

    입력
    8 4 11
    1 4 8 1
    6 4
    6 3
    3 7
    6 5
    5 1
    1 2
    1 8
    q 4
    t 3 4 5
    t 2 2 7
    q 4
    e 5 10
    e 1 5
    q 4
    t 1 1 5
    t 2 2 1
    q 1
    q 2
    
    예상 출력
    0
    -1
    9
    4
    -7