만드는 중입니다

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

Biciak 갱단

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

요약
간선마다 색이 붙은 트리에서 루트 1부터 주어진 정점까지 경로에 나타나는 서로 다른 색의 수를 구하고, 간선 색이 바뀌는 갱신을 처리합니다.
난이도

어려움10점 중 8점

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

문제

Bajtazar는 운송 회사에서 일하며, 수도에 있는 창고(1번 도시)에서 주변 도시의 상점으로 건축 자재를 배달한다. Bajtocja에는 1번부터 nn번까지 번호가 붙은 nn개의 도시가 있고, 도시들은 n−1n-1개의 도로로 연결되어 있다. 각 도로의 중간 지점에는 주유소가 하나씩 있다.

Bajtazar의 하루 일정은 항상 같다. 수도(1번 도시)에서 출발해 어떤 도시 xx까지 가장 짧은 경로로 간 뒤, 같은 경로로 돌아온다.

Bajtazar의 아들 Bitek은 주유소에서 파는 Biciak 봉제인형의 팬이다. Biciak은 모두 mm종이며 1번부터 mm번까지 번호가 붙어 있다. 주유소마다 한 종류만 팔기 때문에, 모든 종류를 모으려면 여러 주유소를 다녀야 한다.

Bajtazar는 매일 아침 그날 서로 다른 Biciak을 몇 종류나 살 수 있을지 궁금해한다. 주유소의 판매 목록은 시간이 지나면서 바뀐다. Bajtazar의 질문에 답하는 프로그램을 작성하라.

입력

첫 줄에 정수 nn, mm, zz가 주어진다 (2≤n≤100 0002 \le n \le 100\,000, 1≤m,z≤150 0001 \le m, z \le 150\,000). 각각 도시의 수, Biciak의 종류 수, 질의의 수이다.

이후 n−1n-1개의 줄에는 정수 aa, bb, cc가 주어진다 (1≤a,b≤n1 \le a, b \le n, 1≤c≤m1 \le c \le m). 이는 도시 aa와 도시 bb 사이에 도로가 있고, 그 도로의 주유소에서 종류 cc의 Biciak을 판다는 뜻이다.

이후 zz개의 줄에는 질의가 주어진다. 각 질의는 문자 하나와 그 뒤에 오는 정수 하나 또는 둘로 이루어진다.

  • Z xx는 Bajtazar가 도시 xx까지 갈 때 서로 다른 Biciak을 몇 종류 살 수 있는지 묻는다 (2≤x≤n2 \le x \le n).
  • B ii cc는 지금부터 입력 순서상 ii번째 도로(1≤i<n1 \le i < n)의 주유소에서 종류 cc의 Biciak을 살 수 있게 된다는 뜻이다 (1≤c≤m1 \le c \le m). 그 순간 주유소가 이미 종류 cc를 팔고 있었다면 아무것도 바뀌지 않는다.

Z 질의는 적어도 하나 주어진다.

출력

Z 질의마다 답을 나타내는 정수를 한 줄에 하나씩 출력한다.

힌트

수도에서 도시 6으로 가는 경로는 도시 1, 3, 4, 6을 지난다. 처음에는 이 경로의 주유소에서 Biciak 2, 3, 2를 팔고 있으므로 살 수 있는 것은 2종류이다. 1-3 도로 주유소의 판매 목록이 바뀐 뒤에는 경로에서 Biciak 1, 3, 2를 살 수 있으므로 3종류가 된다.

예제1

  1. 예제 1

    입력
    6 3 5
    1 2 3
    1 3 2
    3 4 3
    5 3 1
    6 4 2
    Z 5
    Z 6
    B 2 1
    Z 5
    Z 6
    
    예상 출력
    2
    2
    1
    3