아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

채소 보호

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

요약
주어진 모든 점을 포함하는 임의 방향 직사각형 중 둘레가 가장 짧은 값을 구합니다.
난이도

보통10점 중 7점

유형
기하, 정렬, 투 포인터
정답자
아직 제출이 없습니다

문제

상근이는 선영이의 채소를 훔친다. 선영이는 이를 막으려고 채소를 모두 울타리로 둘러싸기로 했다. 울타리 값은 길이에 비례하니 선영이는 둘레가 가장 짧은 울타리를 세우려고 한다. 알 수 없는 이유로 울타리는 직사각형 모양으로만 칠 수 있다.

채소는 크기를 무시하고 이차원 평면 위의 점으로 나타낸다. 모든 채소를 내부나 경계에 담는 직사각형 가운데 둘레가 최소인 것을 구하면 된다.

입력

입력은 여러 개의 테스트 케이스로 이루어진다. 각 테스트 케이스의 첫째 줄에는 채소의 수 NN (3≤N≤10 0003 \le N \le 10\,000)이 주어진다. 다음 NN개 줄에는 채소의 좌표를 나타내는 두 정수 XiX_i와 YiY_i (0≤Xi,Yi≤10 0000 \le X_i, Y_i \le 10\,000)가 주어진다. 두 채소가 같은 좌표를 갖는 경우는 없고, 한 테스트 케이스의 채소가 모두 한 직선 위에 있는 경우도 없다.

입력은 파일의 끝까지 이어진다.

출력

각 테스트 케이스마다 울타리의 최소 둘레를 한 줄에 하나씩 출력한다. 울타리의 변은 좌표축에 평행하지 않아도 된다.

둘레는 소수점 아래 일곱째 자리에서 반올림해 소수점 아래 여섯 자리까지 출력한다. 둘레가 정확히 44이면 4.000000을 출력한다. 반올림 결과가 갈리는 입력은 주어지지 않는다.

예제1

  1. 예제 1

    입력
    3
    0 0
    1 0
    0 1
    3
    10 0
    0 10
    4 4
    4
    1 0
    0 1
    2 1
    1 2
    
    예상 출력
    4.000000
    31.112698
    5.656854