사회적 거리 두기
시간 제한3초메모리 제한1024 MB
N명의 학생, K개의 줄 위치, 겹치지 않는 M개의 금지 구간이 주어질 때, 모든 학생을 서로 D 이상 떨어뜨려 세울 수 있는 최대 D를 구한다.
문제
한 학교에 매일 급식실에서 점심을 먹어야 하는 명의 학생이 있다. 급식실이 문을 열기 직전에 모든 학생이 밖에 줄을 선다. 줄을 설 수 있는 자리는 모두 개이고, 번부터 번까지 번호가 붙어 있다. 각 자리에는 최대 한 명이 설 수 있다. 화재 위험 때문에 비어 있어야 하는 자리도 있다. 구체적으로, 비어 있어야 하는 자리 구간이 개 있다. 구간 는 번 자리 어디에도 서면 안 된다는 뜻이다. 어떤 두 구간도 겹치지 않는다.
학교 교장은 얼마 전 어떤 "팬데믹"에 대해 듣고는 과감한 조치를 취할 때라고 판단한다. 교장은 급식실 줄에 사회적 거리 두기를 도입하려 한다. 정수 를 하나 정하고, 각 학생이 가장 가까운 다른 학생과 적어도 만큼 떨어져 있어야 한다고 말할 것이다. 자리 에 있는 학생과 자리 에 있는 학생 사이의 거리는 이다.
모든 학생이 여전히 동시에 급식실 줄에 설 수 있게 하는 가장 큰 를 교장이 찾도록 도와주자!
입력
첫째 줄에 세 정수 , , 가 주어진다 (, , ). 각각 학생 수, 금지 구간의 수, 자리 수이다. 이어서 개의 줄에 정수 개 , 가 주어진다 (). 번 구간의 시작과 끝이다. 어떤 두 구간도 겹치지 않고, 금지되지 않은 자리가 적어도 개 있음이 보장된다.
출력
정수 하나를 출력한다. 가능한 가장 큰 사회적 거리 두기 값이다.