만드는 중입니다

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

천지창조

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

요약
이름이 붙은 N개의 점이 주어지고, 보로노이 인접 점끼리 공통 부분문자열 길이로 간선 가중치를 정한 뒤 최소 경로 질의와 부모 변경에 답합니다.
난이도

어려움10점 중 10점

유형
기하, 문자열 매칭, 최소 신장 트리, 트리
정답자
아직 제출이 없습니다

문제

신이 세상을 만든 첫째 날, 신은 지상을 만들고 지상에 11부터 NN까지 번호가 붙은 NN개의 성물을 서로 다른 위치에 박아 넣었다. 이로써 지상에는 각 성물을 중심으로 하는 성지가 NN개 생겼다.

지상은 2차원 평면으로 나타낼 수 있다. ii번 성물은 좌표 (Xi,Yi)(X_i,Y_i)에 박혀 있다. 좌표 (x,y)(x,y)가 ii번 성물의 성지에 속하는 조건은 Li(x,y)=(Xi−x)2+(Yi−y)2L_i(x,y)=\sqrt{(X_i-x)^2+(Y_i-y)^2}가 L1(x,y),L2(x,y),⋯ ,LN(x,y)L_1(x,y), L_2(x,y), \cdots, L_N(x,y) 중 최솟값이 되는 것이다. 두 성지는 같은 좌표를 공유할 수 있다. 이때 두 성지의 중심이 되는 두 성물 사이에 연결이 생긴다. 두 성지가 공유하는 점들은 선분, 반직선, 또는 직선이 된다. 신은 선분이 생기면 그 길이가 모두 10−610^{-6} 이상이 되도록 성물을 배치했다.

각 성물에는 이름 SiS_i가 붙어 있다. ii번 성물과 jj번 성물이 연결되면, 두 이름이 비슷한 정도만큼 연결이 강해진다. C(i,j)=lC(i,j)=l은 다음을 뜻한다. SiS_i에서 길이가 ll인 연속 부분 문자열 중 하나가 SjS_j에 연속해서 나타나고, 길이가 l+1l+1인 연속 부분 문자열은 SjS_j에 하나도 나타나지 않는다. SiS_i와 SjS_j에 같은 문자가 하나도 없으면 C(i,j)=0C(i,j)=0이다. ii번과 jj번 사이에 연결이 있으면 C(i,j)C(i,j)가 연결의 세기가 된다.

신이 세상을 만든 둘째 날, 신은 천상을 만들고 천상에 11부터 NN까지 번호가 붙은 NN개의 별을 박아 넣었다. 이 별들은 지상의 성물을 본떠 만들어졌고, 성물 간 연결 중 N−1N-1개를 본떠 별 사이의 연결도 만들어졌다. 하나의 성물은 하나의 별에 대응된다. ii번 성물에 대응된 별의 번호를 bib_i라고 한다.

신은 처음에 11번 성물을 본떠 11번 별을 만들었다. 즉 b1=1b_1=1이다. 그 뒤 번호 순서대로 나머지 별을 만들었다. u(≥2)u(\ge 2)번 별을 만들 때는, 이미 별을 만든 u−1u-1개의 성물 중 하나와 아직 본뜨지 않은 N−u+1N-u+1개의 성물 중 하나를 잇는 연결 가운데 다음 순서로 고른다. 먼저 연결이 가장 강한 것, 여럿이면 이미 본뜬 별의 번호가 가장 큰 것, 그것도 여럿이면 아직 본뜨지 않은 성물의 번호가 가장 작은 것이다. 이렇게 고른 연결이 본떠진 ii번 성물과 아직 본뜨지 않은 jj번 성물을 잇고 있다면, jj번 성물을 본떠 uu번 별을 만든다. 즉 bj=ub_j=u이다. bib_i가 먼저 만들어진 별이므로 bib_i를 bjb_j의 부모 별이라고 부른다.

신이 세상을 만든 셋째 날, 신은 지상에 순례자들을 만들었다.

태초가 지나고 오랜 시간이 흐른 지금, 많은 순례자가 지상을 순례하고 있다. 그중 일부는 신께 허락을 구해 천상의 길을 통해 순례하기도 한다. 어떤 순례자가 지상의 좌표 (xs,ys)(x_s,y_s)에서 지상의 좌표 (xe,ye)(x_e,y_e)까지 천상의 길을 통해 이동하려 한다고 하자. (xs,ys)(x_s,y_s)가 ii번 성지에 속하고 (xe,ye)(x_e,y_e)가 jj번 성지에 속하면, 순례자는 ii번 성지에서 육체를 떠나 정신체가 되어 bib_i번 별로 이동한다. 그다음 별 사이의 연결을 따라 bjb_j번 별로 이동하고, jj번 성지의 좌표 (xe,ye)(x_e,y_e)로 돌아와 다시 육체를 얻으면 순례를 마친다.

이렇게 순례를 마치면 육체적 피로는 없지만, 두 별 사이를 이동하는 동안 가장 멀었던 거리만큼 정신적 피로를 느낀다. 두 별 bib_i와 bjb_j 사이의 거리는 그 별들을 본뜬 성물의 영향을 받아 C(i,j)⋅[(Xi−Xj)2+(Yi−Yj)2]C(i,j)\cdot[(X_i-X_j)^2+(Y_i-Y_j)^2]이다. 순례자는 정신적 피로를 최소화하도록 순례한다.

순례자들이 천상의 길을 이용하는 동안 별들도 이동하므로 천상의 길은 계속 바뀐다. 구체적으로는 어떤 별과 부모 별 사이의 연결이 끊어지고, 새로운 부모 별과 연결이 생긴다.

태초에 천상의 길이 어떻게 구성되었는지 구하라. 또 태초 이후 천상의 길을 이용하는 순례 계획과 천상의 길의 변화가 주어질 때, 순례자들이 느끼는 정신적 피로가 얼마인지 구하라.

입력

첫 번째 줄에 별의 개수 NN, 순례 계획의 개수 Q1Q_1, 천상의 길이 변하는 횟수 Q2Q_2가 주어진다.

다음 NN개의 줄 중 ii번째 줄에는 ii번 성물의 좌표를 나타내는 두 정수 XiX_i, YiY_i(−106≤Xi,Yi≤106-10^6 \le X_i, Y_i \le 10^6)와 성물의 이름 SiS_i가 주어진다. 이름은 영어 소문자로 이루어진 문자열이다. 같은 좌표에 서로 다른 두 성물이 놓이는 일은 없다.

다음 Q1+Q2Q_1+Q_2개의 줄에 각각 다음 형식 중 하나로 질의가 주어진다.

1 xsx_s ysy_s xex_e yey_e: 순례자가 지상의 좌표 (xs,ys)(x_s,y_s)에서 지상의 좌표 (xe,ye)(x_e,y_e)까지 천상의 길을 통해 순례를 계획한다. 이 순례를 진행할 때 느끼는 정신적 피로의 최솟값을 출력해야 한다. 입력은 −106≤xs,ys,xe,ye≤106-10^6 \le x_s, y_s, x_e, y_e \le 10^6을 만족한다. (xs,ys)(x_s,y_s)와의 유클리드 거리가 10−610^{-6} 이하인 점은 모두 하나의 성지에 속함이 보장된다. (xe,ye)(x_e,y_e)도 마찬가지다.

2 uu pp: uu번 별의 부모 별이 pp로 바뀐다. 입력은 1≤p<u≤N1 \le p < u \le N을 만족한다.

출력

먼저 N−1N-1개의 줄에 걸쳐 태초에 천상의 길이 어떻게 구성되었는지 출력한다. ii번째 줄에는 i+1i+1번 별에 대응된 성물의 번호 ai+1a_{i+1}, 태초에 i+1i+1번 별의 부모 별이었던 별의 번호 pi+1p_{i+1}, 그리고 ai+1a_{i+1}번 성물과 pi+1p_{i+1}번 별에 대응된 성물을 잇는 연결의 세기를 출력한다.

그다음 Q1Q_1개의 줄에 걸쳐, 주어진 순서대로 순례 계획과 천상의 길의 변화를 처리했을 때 순례자가 느끼는 정신적 피로의 최솟값을 한 줄에 하나씩 출력한다.

예제1

  1. 예제 1

    입력
    9 10 5
    1 0 aabb
    1 9 abab
    3 3 aaab
    3 7 abbb
    5 5 baab
    7 3 bbaa
    7 7 abba
    10 1 bbbb
    9 10 aaaa
    1 0 0 10 10
    1 7 10 5 6
    1 5 12 12 5
    2 5 1
    1 3 6 2 3
    1 0 8 8 0
    1 1 2 7 4
    2 9 4
    2 9 4
    2 9 4
    1 5 6 7 8
    1 8 3 10 9
    2 7 2
    1 5 4 6 5
    1 4 5 3 10
    
    예상 출력
    3 1 3
    5 2 3
    6 3 3
    7 4 3
    4 5 3
    2 6 2
    8 5 2
    9 7 1
    65
    65
    90
    255
    90
    39
    255
    106
    0
    80