만드는 중입니다

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

다섯 지점 잇기

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

요약
격자 위의 다섯 지점이 주어질 때, 모든 지점 쌍을 최단 직각 경로로 이을 수 있도록 보수해야 하는 도로 구간의 최소 개수를 구합니다.
난이도

보통10점 중 7점

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

문제

네타난햄 마을의 도로는 모두 남북 방향이거나 동서 방향이며, 각 도로는 마을 전체를 가로지른다. 도로 사이의 간격은 모두 같아서 마을 안에서 길을 찾기가 쉽다.

도로 상태가 나빠서 새로 아스팔트를 깔아야 한다. 하지만 모든 도로를 고칠 돈은 없으므로 일부 구간을 우선순위에 따라 골라야 한다.

시장은 중요한 장소 다섯 곳을 골랐다. 시청, 경찰서, 병원, 소방서, 그리고 시장 관저다. 각 장소는 교차로 위에 있다.

시장은 이 장소 중 어떤 두 곳을 골라도, 그 사이를 보수된 도로로만 이루어진 최단 경로로 오갈 수 있기를 원한다. 이 조건을 지키면서 보수하는 도로의 길이를 최소로 줄이고 싶다. 교차로는 합계에 포함하지 않는다. 그림 C.1은 최적의 보수 구성을 보여 준다.

그림 C.1: 장소를 첫 글자로 표시한 그림이며, 보수하는 도로 구간을 최소 개수(22개)로 만드는 한 가지 방법을 보여 준다. 점 (0,0)(0,0)은 격자의 왼쪽 아래 모서리에 있다.

입력

입력은 다섯 줄이다. 각 줄에는 중요한 장소 하나의 격자 좌표인 정수 xx와 yy (0≤x,y≤10000 \le x, y \le 1000)가 주어진다.

모든 장소의 좌표는 서로 다르다.

출력

보수해야 하는 도로 구간의 최소 개수를 출력한다.

예제2

  1. 예제 1

    입력
    8 1
    3 4
    6 7
    10 4
    1 2
    
    예상 출력
    22
    
  2. 예제 2

    입력
    0 0
    0 10
    20 0
    20 10
    3 3
    
    예상 출력
    70