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

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

전칭 기호와 존재 기호

면접 대비

시간 제한2초메모리 제한512 MB

요약
합집합이 [0,L)인 N개의 반개구간이 주어질 때, [0,L)을 덮는 최소 구간 수 x와, 어떤 k개를 골라도 [0,L)을 덮게 되는 최소 k를 구한다.
난이도

어려움10점 중 8점

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

문제

NN개의 구간이 주어진다. ii번째 구간은 \[li,ri)\[l_i,r_i)이고, 이는 lil_i 이상 rir_i 미만인 수의 범위를 나타낸다. 이 문제에서는 다음 두 수를 구한다.

  • 주어진 NN개의 구간에서 xx개의 구간을 골라 그 합집합이 \[0,L)\[0,L)이 되도록 할 수 있는 최소 정수 xx.
  • 주어진 NN개의 구간에서 yy개의 구간을 어떻게 고르더라도 \[0,L)\[0,L)을 덮는 최소 정수 yy.

이 두 수를 계산하는 프로그램을 작성하시오.

입력

입력은 하나의 테스트 케이스로 이루어지며, 형식은 다음과 같다.

첫째 줄에는 두 정수 NN (1≤N≤2⋅1051 \le N \le 2 \cdot 10^5)과 LL (1≤L≤10121 \le L \le 10^{12})이 주어진다. NN은 구간의 개수이고, LL은 덮어야 하는 범위의 길이이다. 다음 NN개 줄의 ii번째 줄에는 두 정수 lil_i와 rir_i (0≤li<ri≤L0 \le l_i < r_i \le L)가 주어지며, 이는 ii번째 구간 \[li,ri)\[l_i,r_i)를 나타낸다. 주어진 NN개 구간의 합집합은 \[0,L)\[0,L)이라고 가정할 수 있다.

출력

문제에서 정의한 두 정수 xx와 yy를 한 줄에 공백 하나를 사이에 두고 출력한다.

예제3

  1. 예제 1

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

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

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