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

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

사회적 거리 두기

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

요약
N명의 학생, K개의 줄 위치, 겹치지 않는 M개의 금지 구간이 주어질 때, 모든 학생을 서로 D 이상 떨어뜨려 세울 수 있는 최대 D를 구한다.
난이도

어려움10점 중 8점

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

문제

한 학교에 매일 급식실에서 점심을 먹어야 하는 NN명의 학생이 있다. 급식실이 문을 열기 직전에 모든 학생이 밖에 줄을 선다. 줄을 설 수 있는 자리는 모두 KK개이고, 00번부터 K−1K-1번까지 번호가 붙어 있다. 각 자리에는 최대 한 명이 설 수 있다. 화재 위험 때문에 비어 있어야 하는 자리도 있다. 구체적으로, 비어 있어야 하는 자리 구간이 MM개 있다. 구간 li,ril_i,r_i는 li,li+1,…,ril_i, l_i+1, \ldots, r_i번 자리 어디에도 서면 안 된다는 뜻이다. 어떤 두 구간도 겹치지 않는다.

학교 교장은 얼마 전 어떤 "팬데믹"에 대해 듣고는 과감한 조치를 취할 때라고 판단한다. 교장은 급식실 줄에 사회적 거리 두기를 도입하려 한다. 정수 DD를 하나 정하고, 각 학생이 가장 가까운 다른 학생과 적어도 DD만큼 떨어져 있어야 한다고 말할 것이다. 자리 ii에 있는 학생과 자리 jj에 있는 학생 사이의 거리는 ∣i−j∣|i-j|이다.

모든 학생이 여전히 동시에 급식실 줄에 설 수 있게 하는 가장 큰 DD를 교장이 찾도록 도와주자!

입력

첫째 줄에 세 정수 NN, MM, KK가 주어진다 (2≤N≤1092 \leq N \leq 10^9, 0≤M≤1060 \leq M \leq 10^6, N≤K≤1012N \leq K \leq 10^{12}). 각각 학생 수, 금지 구간의 수, 자리 수이다. 이어서 MM개의 줄에 정수 22개 lil_i, rir_i가 주어진다 (0≤li≤ri≤K−10 \le l_i \le r_i \le K-1). ii번 구간의 시작과 끝이다. 어떤 두 구간도 겹치지 않고, 금지되지 않은 자리가 적어도 NN개 있음이 보장된다.

출력

정수 하나를 출력한다. 가능한 가장 큰 사회적 거리 두기 값이다.

예제3

  1. 예제 1

    입력
    3 2 10
    3 5
    7 8
    
    예상 출력
    3
    
  2. 예제 2

    입력
    4 4 30
    0 8
    20 24
    27 29
    9 9
    
    예상 출력
    4
    
  3. 예제 3

    입력
    9 0 99999999999
    
    예상 출력
    12499999999