책 쌓기

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

요약
직사각형 N개를 무더기로 나누어 각 무더기의 가로와 세로 길이가 아래에서 위로 단조 감소하도록 할 때, 필요한 최소 무더기 수를 구한다. 책은 90도 회전할 수 있다.
난이도

보통10점 중 7점

유형
그리디, 정렬, 동적 계획법, 이분 탐색
정답자
아직 제출이 없습니다

문제

NN권의 책을 책상 위에 여러 무더기로 쌓아올리려고 한다. 책은 높이를 무시할 수 있는 직사각형 모양이며, ii번째 책의 두 변의 길이는 A_iA\_i와 B_iB\_i이다. 책은 반드시 가로 방향, 세로 방향 중 하나와 나란한 방향으로 놓아야 한다. 즉, 각각의 책은 90도 회전할 수 있다. 또한, 한 무더기에 쌓아올려진 책을 밑에서부터 순서대로 봤을 때 가로 방향의 길이와 세로 방향의 길이가 각각 단조 감소해야 한다. 즉, 두 인접한 책의 가로 혹은 세로 방향의 길이가 같은 경우도 허용한다.

이 조건을 만족하는 방법 중에서 무더기의 개수가 최소가 되는 방법을 찾아라.

입력

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

두번째 줄부터 이어지는 NN개의 줄에 A_iA\_i와 B_iB\_i의 값이 공백으로 구분되어 주어진다.

출력

조건을 만족하며 책을 쌓는 방법 중 무더기의 최소 개수를 출력하여라.

제한

  • 주어지는 수는 모두 정수이다.
  • 1≤N≤200,0001\leq N \leq 200\\,000
  • 1≤i≤N1 \le i \le N 인 각 ii 에 대하여: 1≤A_i,B_i≤1091\leq A\_i, B\_i \leq 10^9

예제2

  1. 예제 1

    입력
    5
    1 5
    4 2
    3 3
    3 4
    5 2
    
    예상 출력
    3
    
  2. 예제 2

    입력
    3
    1 1
    1 1
    1 1
    
    예상 출력
    1