무자비한 최단 경로

아직 제출이 없습니다시간 제한2초메모리 제한1024 MB

문제

신촌 초급반 학생들은 그래프에서 최단 경로를 구하는 여러 방법들을 공부했다. 그들에게 벽을 느끼게 하고 싶었던 djs100201은 무자비한 최단 경로 문제를 만들었다.

11번 부터 NN번까지 번호가 매겨진 총 NN개의 마을이 있다. ii번째 마을의 위치는 (x_i,y_i,z_i)(x\_i,y\_i,z\_i)로 표현된다. 11이상 NN이하의 서로 다른 두 정수 i,ji,j에 대해, ii번 마을과 jj번 마을을 잇는 min(x_ix_j,y_iy_j)\min(|x\_i-x\_j|,|y\_i-y\_j|)만큼의 길이를 가진 양방향 도로가 존재한다. 또한 만약 z_i+z_jz\_i+z\_jKK로 나누어 떨어진다면, ii번 마을과 jj번 마을을 잇는 z_i+z_jz\_i+z\_j의 길이를 가진 양방향 도로 또한 존재한다.

이때 11번 마을에서 각 마을로 도착하는 최단 경로의 길이를 모두 구해보자.

입력

첫째 줄에 정수 NNKK가 공백으로 구분되어 주어진다. (1N,K200,000)(1 \leq N,K \leq 200\\,000)

둘째 줄부터 NN개의 줄에 걸쳐 i+1i+1번째 줄에는 ii번 마을의 위치를 나타내는 세 정수 (x_i,y_i,z_i)(x\_i,y\_i,z\_i)가 공백으로 구분되어 주어진다. (0x_i,y_i,z_i109)(0 \leq x\_i,y\_i,z\_i \leq 10^9)

출력

NN줄에 걸쳐 답을 출력한다. ii번째 줄에는 ii번 마을에 도착하는 최단 경로의 길이를 출력한다.