구간 나누기
시간 제한1초메모리 제한1024 MB
N개의 구간이 주어질 때, K번 분할한 뒤 모든 구간의 절반 이상을 덮는 가장 짧은 구간 [A, B]의 길이를 구합니다.
문제
수직선 위에 양의 정수 끝점을 갖는 개의 구간 이 주어진다. 나누기 연산은 구간 을 두 구간 과 로 바꾼다. 이때 은 양의 정수이고 이다. 처음 주어진 구간뿐 아니라 앞선 나누기 연산으로 만들어진 구간도 나눌 수 있다.
양의 정수 에 대해, 구간 가 구간 의 길이의 절반 이상을 덮으면 는 을 강하게 덮는다고 한다.
주어진 개의 구간에 번의 나누기 연산을 적용해 얻은 개의 구간 모두를 구간 가 강하게 덮을 때, 그러한 의 길이의 최솟값을 구하라.
입력
첫 줄에 정수 과 가 주어진다 (, ). 다음 개 줄의 번째 줄에는 번째 구간의 왼쪽 끝점 와 오른쪽 끝점 가 주어진다 (). 주어진 구간에 번의 나누기 연산을 적용할 수 있다고 가정해도 된다. 주어진 구간 중 일부는 서로 같을 수 있다.
출력
강하게 덮는 조건을 만족하는 구간 의 길이의 최솟값을 정수 하나로 출력한다.