만드는 중입니다

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

마을의 친밀도

면접 대비

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

요약
3차원 좌표로 주어진 N개 마을 중 서로 다른 세 마을을 골라 가운데 마을에서 다른 두 마을까지 맨해튼 거리 합이 가장 작아지도록 구합니다.
난이도

쉬움10점 중 3점

유형
완전 탐색, 기하
정답자
아직 제출이 없습니다

문제

세 마을의 좌표가 (x1,y1,z1)(x_1, y_1, z_1), (x2,y2,z2)(x_2, y_2, z_2), (x3,y3,z3)(x_3, y_3, z_3)이라고 하자. 이 세 마을의 친밀도는 d12+d23d_{12} + d_{23}으로 정의하고, 마을 ii와 마을 jj 사이의 거리는 dij=∣xi−xj∣+∣yi−yj∣+∣zi−zj∣d_{ij} = |x_i - x_j| + |y_i - y_j| + |z_i - z_j|이다.

친밀도는 두 번째 마을을 가운데 두고 첫 번째 마을까지의 거리와 세 번째 마을까지의 거리를 더한 값이므로, 어느 마을을 가운데에 두느냐에 따라 값이 달라진다.

마을의 좌표가 주어졌을 때, 서로 다른 세 마을을 골라 순서까지 정하는 모든 방법 중에서 친밀도가 가장 작은 값을 구하는 프로그램을 작성하시오. 좌표가 같은 마을이 여럿 있을 수도 있지만, 고르는 세 마을은 서로 다른 마을이어야 한다.

입력

첫째 줄에 마을의 수 NN (3≤N≤10 0003 \le N \le 10\,000)이 주어진다. 다음 NN개 줄에는 마을 하나의 좌표 xx, yy, zz가 공백으로 구분되어 주어진다. (−1000≤x,y,z≤1000-1000 \le x, y, z \le 1000)

출력

서로 다른 세 마을로 만들 수 있는 친밀도 중 가장 작은 값을 한 줄에 출력한다.

예제1

  1. 예제 1

    입력
    9
    0 0 1
    0 0 2
    0 0 3
    0 0 4
    0 0 6
    0 0 8
    0 0 7
    0 0 9
    0 0 10
    
    예상 출력
    2