만드는 중입니다

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

색깔 있는 숲

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

요약
간선이 추가되고 삭제되는 숲에서 정점 v로부터 거리가 z 이하인 정점을 색 k로 칠하고, 정점 u의 현재 색을 구합니다.
난이도

어려움10점 중 9점

유형
트리, 그래프, 최단 경로
정답자
아직 제출이 없습니다

문제

바이타자르는 π의 날을 맞아 정점이 nn개인 숲(무방향 비순환 그래프)을 선물로 받았다. 정점은 1부터 nn까지 번호가 매겨져 있고, 각 간선에는 양의 정수 길이가 주어진다. 각 정점에는 정수 색도 있으며, 처음에는 모든 정점의 색이 0이다.

이 선물을 준 당신은 이제 바이타자르의 질의에 답해야 한다. 질의는 다음 네 가지 중 하나다.

  • 1 a b d: 바이타자르가 정점 aa와 bb를 길이 dd인 무방향 간선으로 잇는다. 간선을 추가한 뒤에도 그래프에 사이클이 생기지 않음이 보장된다.
  • 2 a b: 바이타자르가 정점 aa와 bb를 잇는 간선을 제거한다.
  • 3 v z k: 바이타자르가 정점 vv에서 거리가 zz 이하인 도달 가능한 모든 정점을 색 kk로 칠한다. 두 정점 사이의 거리는 그 사이 단순 경로 위 간선 길이의 합이다.
  • 4 u: 바이타자르가 정점 uu의 현재 색을 묻는다.

입력

첫 줄에 정수 nn, mm, qq가 주어진다(2≤n≤2000002 \le n \le 200000, 0≤m≤n−10 \le m \le n - 1, 1≤q≤2000001 \le q \le 200000). 각각 정점 수, 처음 숲에 있는 간선 수, 질의 수다.

이어지는 mm개의 줄에는 정수 aia_i, bib_i, did_i가 주어진다(1≤ai,bi≤n1 \le a_i, b_i \le n, 1≤di≤1091 \le d_i \le 10^9). 정점 aia_i와 bib_i가 길이 did_i인 간선으로 연결되어 있다는 뜻이다.

이어지는 qq개의 줄에는 문제에 제시된 형식의 질의가 주어진다. 모든 질의에서 1≤ai,bi,vi,ui≤n1 \le a_i, b_i, v_i, u_i \le n, 1≤di≤1091 \le d_i \le 10^9, 0≤zi≤10150 \le z_i \le 10^{15}, 1≤ki≤1091 \le k_i \le 10^9이다.

주어진 mm개의 간선은 올바른 숲을 이루며, 매 수정 후에도 그래프는 올바른 숲으로 남는다. 현재 숲에 없는 간선을 제거하라는 질의는 나오지 않는다.

네 번째 유형의 질의가 적어도 하나 있음이 보장된다.

출력

네 번째 유형의 질의마다 요청된 정점의 색을 한 줄에 하나씩 출력한다.

힌트

일부 테스트 그룹에는 첫 번째 또는 두 번째 유형의 질의가 없고, m=n−1m = n - 1을 만족한다.

일부 테스트 그룹에서는 세 번째 유형의 모든 질의에서 zi=1015z_i = 10^{15}이다.

위의 각 조건을 만족하는 테스트 그룹이 적어도 하나씩 있다. 두 조건에 해당하는 그룹은 겹칠 수도, 겹치지 않을 수도 있다.

예제1

  1. 예제 1

    입력
    4 2 9
    1 2 2
    3 2 5
    4 2
    3 2 2 5
    4 1
    3 2 4 3
    4 1
    4 3
    2 2 1
    1 1 4 1
    4 4
    
    예상 출력
    0
    5
    3
    0
    0