만드는 중입니다

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

잠든 카멜레온

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

요약
1번 카멜레온에서 N번 카멜레온을 깨우는 데 걸리는 최소 시간을 구합니다. 같은 색끼리는 혀를 뻗을 수 없고, 한 칸 이동은 1초입니다.
난이도

보통10점 중 7점

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

문제

카멜레온 마을에는 NN마리의 카멜레온이 살고 있으며, 이 마을은 2차원 평면으로 볼 수 있다. ii번째 카멜레온은 (Xi,Yi)(X_i, Y_i) 위치에 있고, 색깔은 CiC_i이다.

밤이 깊었을 때 깨어 있는 것은 첫 번째 카멜레온뿐이고, 나머지 카멜레온은 모두 잠들어 있다.

갑자기 NN번째 카멜레온에게 급한 일이 생겨서 깨워야 한다. 카멜레온을 깨우려면 몸이 직접 닿아야 한다. 따라서 다른 카멜레온이 그 위치까지 걸어가거나 혀를 뻗어 닿아야 한다.

카멜레온은 상하좌우와 대각선의 여덟 방향으로 움직일 수 있다. 구체적으로 (x,y)(x,y)에 있는 카멜레온은 1초 만에 (x−1,y−1)(x-1,y-1), (x−1,y)(x-1,y), (x−1,y+1)(x-1,y+1), (x,y−1)(x,y-1), (x,y)(x,y), (x,y+1)(x,y+1), (x+1,y−1)(x+1,y-1), (x+1,y)(x+1,y), (x+1,y+1)(x+1,y+1) 중 한 곳으로 이동할 수 있다.

또한 카멜레온은 혀를 세로나 가로 방향으로 뻗을 수 있다. 즉 (x,y)(x,y)에 있는 카멜레온은 임의의 정수 cc에 대해 (x+c,y)(x+c,y) 또는 (x,y+c)(x,y+c)에 혀를 닿게 할 수 있다. 혀를 뻗는 데는 시간이 걸리지 않는다. 다만 같은 색깔의 카멜레온끼리는 서로를 알아보기 어려워 겨냥이 힘들기 때문에, 서로를 향해 혀를 뻗을 수 없다. 혀를 뻗을 때 경로에 다른 카멜레온이 있어도 상관없다. 혀의 목적지에 있는 카멜레온만 깨어나고, 경로에 있던 다른 카멜레온은 깨지 않는다.

카멜레온은 졸음이 많아서, 다른 카멜레온을 깨운 직후 현재 자리에서 바로 다시 잠든다.

NN번째 카멜레온을 깨우는 데 걸리는 최소 시간(초)을 구하시오.

입력

첫째 줄에 카멜레온의 수 NN과 색깔의 수 MM이 공백으로 구분되어 주어진다.

둘째 줄부터 N+1N+1번째 줄까지 i+1i+1번째 줄에는 ii번째 카멜레온의 초기 위치 XiX_i, YiY_i와 색깔 CiC_i가 공백으로 구분되어 주어진다.

출력

NN번째 카멜레온을 깨우는 데 걸리는 최소 시간(초)을 출력한다.

제한

  • 2≤N≤1000002 \le N \le 100000
  • 1≤M≤N1 \le M \le N
  • −109≤Xi,Yi≤109-10^9 \le X_i, Y_i \le 10^9 (1≤i≤N)(1 \le i \le N)
  • i≠ji \neq j이면 Xi≠XjX_i \neq X_j 또는 Yi≠YjY_i \neq Y_j이다. (1≤i,j≤N)(1 \le i, j \le N)
  • 1≤Ci≤M1 \le C_i \le M (1≤i≤N)(1 \le i \le N)
  • 각 1≤i≤M1 \le i \le M에 대해 Cj=iC_j = i를 만족하는 1≤j≤N1 \le j \le N이 존재한다.
  • 입력의 모든 값은 정수이다.

예제1

  1. 예제 1

    입력
    7 3
    -5 0 1
    -3 3 2
    6 10000 2
    5 3 3
    3 -7 3
    0 3 2
    7 0 1
    
    예상 출력
    4