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

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

수영장 안전요원 (플래티넘)

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

요약
N개의 근무 구간 중 정확히 K개를 해고해 남은 구간이 하나 이상 덮는 시간의 합이 최대가 되도록 한다.
난이도

어려움10점 중 8점

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

문제

존 농부는 젖소가 쉬면서 우유를 더 많이 내도록 수영장을 열었다.

안전을 위해 젖소 NN마리를 안전요원으로 고용했다. 안전요원은 저마다 하루 중 연속된 구간 하나를 근무한다. 수영장은 매일 시각 00부터 시각 10910^9까지 열려 있으므로, 근무 구간은 근무를 시작하는 시각과 끝내는 시각, 정수 두 개로 나타낸다. 예를 들어 시각 t=4t = 4에 시작해 시각 t=7t = 7에 끝나는 안전요원은 시간 3단위를 감시한다. 시각은 길이가 없는 한 점이다.

존 농부가 고용한 안전요원은 급여를 감당할 수 있는 수보다 KK마리 많다. 그래서 정확히 KK마리를 해고해야 한다. 남은 안전요원 중 적어도 한 마리가 근무하는 시간은 감시된다. 해고한 뒤 남은 근무 구간이 감시할 수 있는 시간의 최댓값을 구하여라.

입력

첫째 줄에 NN과 KK가 주어진다 (K≤N≤100000K \leq N \leq 100000, 1≤K≤1001 \leq K \leq 100).

다음 NN개 줄에는 안전요원 한 마리의 근무 시작 시각과 끝 시각이 00 이상 10910^9 이하의 정수로 주어진다. 시작 시각은 끝 시각보다 작다. 입력에 나오는 시각 2N2N개는 모두 서로 다르다. 서로 다른 안전요원의 근무 구간은 겹치기도 한다.

출력

정확히 KK마리를 해고한 뒤 감시할 수 있는 시간의 최댓값을 한 줄에 출력한다.

힌트

첫 번째 예제에서는 11부터 88까지 근무하는 안전요원과 77부터 1515까지 근무하는 안전요원을 해고하면 된다. 남은 근무 구간 22부터 1414까지가 시간 12단위를 감시한다.

예제2

  1. 예제 1

    입력
    3 2
    1 8
    7 15
    2 14
    
    예상 출력
    12
    
  2. 예제 2

    입력
    5 2
    0 10
    20 23
    30 31
    40 46
    50 61
    
    예상 출력
    27