정사각형 세 개

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

요약
정수 좌표를 가진 N개의 점이 주어질 때, 한 변의 길이가 같은 세 개의 축에 평행한 정사각형으로 모든 점을 덮는 최소 변의 길이를 구한다.
난이도

어려움10점 중 8점

유형
이분 탐색, 정렬, 그리디, 분할 정복
정답자
아직 제출이 없습니다

문제

평면 위에 서로 다른 점 NN개가 있고, 각 점의 좌표는 정수다. 축에 평행하고 한 변의 길이가 같은 정사각형 3개를 놓아서 NN개의 점이 모두 어느 한 정사각형의 내부 또는 경계에 놓이게 하려고 한다. 이때 한 변의 길이의 최솟값을 구하시오.

정사각형은 평면 어디에나 놓을 수 있고, 서로 겹쳐도 된다.

입력

첫째 줄에 점의 개수 NN이 주어진다 (1≤N≤100 0001 \le N \le 100\,000).

다음 NN개의 줄에는 각 점의 xx좌표와 yy좌표가 공백으로 구분되어 하나씩 주어진다 (0≤x,y≤1090 \le x, y \le 10^9). 모든 점은 서로 다르다.

출력

NN개의 점을 모두 덮는 정사각형 3개의 한 변의 길이 중 최솟값을 한 줄에 출력한다. 이 값은 항상 정수다.

힌트

첫 번째 예제에서는 한 변의 길이가 2인 정사각형 3개를 왼쪽 아래 꼭짓점이 각각 (0,0)(0, 0), (8,0)(8, 0), (7,1)(7, 1)이 되도록 놓으면 다섯 점이 모두 덮인다.

예제3

  1. 예제 1

    입력
    5
    0 0
    10 0
    0 1
    2 2
    9 3
    
    예상 출력
    2
    
  2. 예제 2

    입력
    1
    1000000000 1000000000
    
    예상 출력
    0
    
  3. 예제 3

    입력
    7
    0 7
    4 7
    9 7
    13 7
    20 7
    26 7
    31 7
    
    예상 출력
    9