소들의 도로 횡단

면접 대비

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

요약
두 소의 경로가 왼쪽에서 오른쪽 순서가 출발과 도착에서 뒤집힐 때 교차한다고 할 때, 다른 소와 전혀 교차하지 않는 소의 수를 센다.
난이도

보통10점 중 4점

유형
정렬, 배열, 그리디, 구현
정답자
아직 제출이 없습니다

문제

매일 존 농부의 소 NN마리(1≤N≤100,0001 \le N \le 100{,}000)가 농장 한가운데를 가로지르는 도로를 건넌다. 농장을 2차원 평면 위의 지도로 볼 때 도로는 수평으로 놓여 있으며, 한쪽 경계는 직선 y=0y = 0, 반대쪽 경계는 직선 y=1y = 1로 나타낸다. ii번 소는 한쪽의 위치 (ai,0)(a_i, 0)에서 반대쪽의 위치 (bi,1)(b_i, 1)까지 직선 경로를 따라 도로를 건넌다. 모든 aia_i는 서로 다르고, 모든 bib_i도 서로 다르며, 이 값들은 모두 −1,000,000-1{,}000{,}000부터 1,000,0001{,}000{,}000까지의 정수이다.

소들이 제법 민첩하긴 하지만, 존은 경로가 서로 교차하는 두 소가 도로를 건너다 부딪혀 다칠까 봐 자주 걱정한다. 존은 다른 어떤 소의 경로도 자신의 경로와 교차하지 않는 소를 "안전한" 소라고 부른다. 안전한 소가 몇 마리인지 세어 존을 도와라.

입력

  • 첫째 줄: 소의 수 NN.
  • 둘째 줄부터 NN개의 줄: ii번째 줄에는 ii번 소의 경로를 나타내는 두 정수 aia_i와 bib_i가 주어진다.

출력

  • 첫째 줄: 안전한 소의 수.

힌트

두 소 ii와 jj의 경로는 시작점에서의 좌우 순서가 끝점에서 뒤바뀔 때, 즉 (ai−aj)(a_i - a_j)와 (bi−bj)(b_i - b_j)의 부호가 서로 다를 때에만 교차한다. 따라서 소 ii는 시작 위치가 자신보다 왼쪽(aj<aia_j < a_i)이면서 끝 위치가 오른쪽(bj>bib_j > b_i)인 소도, 시작 위치가 오른쪽이면서 끝 위치가 왼쪽인 소도 없을 때 안전하다.

예를 들어 소가 4마리 있고 1번 소가 (−3,0)(-3, 0)에서 (4,1)(4, 1)로 건너는 경우를 생각해 보자. 이때 1번과 3번 소는 다른 어떤 소와도 교차하지 않아 안전하지만, 2번과 4번 소는 서로 교차하므로 안전하지 않다.

예제1

  1. 예제 1

    입력
    4
    -3 4
    7 8
    10 16
    3 9
    
    예상 출력
    2