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

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

평면 꺾은선

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

요약
점 n개가 주어질 때, 각 선분의 기울기가 -1과 1 사이이면서 오른쪽으로만 진행하는 평평한 꺾은선으로 모든 점을 덮는 최소 개수를 구한다.
난이도

어려움10점 중 8점

유형
그리디, 정렬, 기하
정답자
아직 제출이 없습니다

문제

좌표평면이 그려진 종이가 있다. 이 종이의 왼쪽 끝에서 오른쪽 끝까지 연필을 떼지 않고 한 번에 그릴 수 있는 꺾은선을 생각하자. 단, 꺾은선을 이루는 모든 선분에 대해, 그 선분을 포함하는 직선과 OXOX축이 이루는 각이 [−45∘,45∘][-45^\circ, 45^\circ] 범위 안에 있어야 한다. 이 조건을 만족하는 꺾은선을 평면 꺾은선이라고 부른다.

다시 말해, 평면 꺾은선은 항상 오른쪽으로 진행하며, 각 선분의 기울기는 −1-1 이상 11 이하이다.

정수 좌표를 가지는 서로 다른 점 nn개가 주어진다. 이 점들을 모두 덮는 데 필요한 평면 꺾은선의 최소 개수를 구하여라. 어떤 점이 꺾은선 위에 있으면 그 점은 그 꺾은선으로 덮인 것이다.

여섯 개의 점을 덮는 평면 꺾은선

예를 들어, 여섯 개의 점 (1,6)(1, 6), (10,8)(10, 8), (1,5)(1, 5), (2,20)(2, 20), (4,4)(4, 4), (6,2)(6, 2)는 최소 33개의 평면 꺾은선으로 덮을 수 있다.

표준 입력에서 점의 개수와 좌표를 읽어, 모든 점을 덮는 데 필요한 평면 꺾은선의 최소 개수를 계산하여 표준 출력에 출력하는 프로그램을 작성하여라.

입력

첫째 줄에 점의 개수를 나타내는 양의 정수 nn (1≤n≤300001 \le n \le 30000)이 주어진다. 이어지는 nn개의 줄에는 각 점의 좌표가 주어지며, 각 줄에는 두 정수 xx, yy (0≤x≤300000 \le x \le 30000, 0≤y≤300000 \le y \le 30000)가 공백 하나로 구분되어 주어진다. 모든 점은 서로 다르다.

출력

모든 점을 덮는 데 필요한 평면 꺾은선의 최소 개수를 정수 하나로 출력한다.

예제3

  1. 예제 1

    입력
    6
    1 6
    10 8
    1 5
    2 20
    4 4
    6 2
    
    예상 출력
    3
    
  2. 예제 2

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

    입력
    3
    5 1
    5 2
    5 3
    
    예상 출력
    3