감시 카메라

면접 대비

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

요약
서로 다른 격자 점 5만 개 이하가 주어질 때, 세 개의 축에 평행한 직선(가로줄 또는 세로줄)으로 모든 점을 덮을 수 있는지 판정한다.
난이도

보통10점 중 7점

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

문제

창영이는 새로 구입한 감시 카메라 세 대로 소 NN마리(1≤N≤50,0001 \le N \le 50{,}000)를 모두 감시하려고 한다.

ii번째 소의 위치는 (xi,yi)(x_i, y_i)이며, xix_i와 yiy_i는 00 이상 1,000,000,0001{,}000{,}000{,}000 이하의 정수이다. 서로 다른 두 소가 같은 좌표에 있는 경우는 없다.

각 감시 카메라는 하나의 수직선 또는 하나의 수평선 위에 놓인 모든 소를 감시할 수 있다. 즉, 카메라 한 대는 세로줄 전체 x=ax = a 또는 가로줄 전체 y=by = b를 담당한다.

감시 카메라 세 대로 모든 소를 감시할 수 있는지 판별하는 프로그램을 작성하시오. 다시 말해, 평면 위의 점 NN개를 축에 평행한 직선 3개로 모두 덮을 수 있는지 구하는 문제이다.

입력

첫째 줄에 소의 수 NN이 주어진다.

둘째 줄부터 NN개의 줄에 걸쳐 각 소의 좌표 xix_i와 yiy_i가 공백으로 구분되어 주어진다.

출력

세 대의 감시 카메라로 모든 소를 감시할 수 있으면 11을, 그렇지 않으면 00을 출력한다.

힌트

소가 총 66마리 있고 위치가 (1,7)(1,7), (0,0)(0,0), (1,2)(1,2), (2,0)(2,0), (1,4)(1,4), (3,4)(3,4)인 경우, 감시 카메라를 y=0y = 0, x=1x = 1, y=4y = 4에 설치하면 모든 소를 감시할 수 있으므로 답은 11이다.

예제1

  1. 예제 1

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