회의

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

요약
도착 시각을 초당 1의 비용으로 조정해 정확히 K명이 음이 아닌 정수 X에 대해 구간 [0, X] 안에 들어오도록 만들 때 최소 비용을 구한다.
난이도

보통10점 중 6점

유형
슬라이딩 윈도우, 정렬, 그리디, 누적 합
정답자
아직 제출이 없습니다

문제

당신은 NN명의 부하 직원을 둔 회사의 사장이다. 오늘 ii번째 부하 직원은 당신이 출근한 시각보다 AiA_i초 늦게 출근한다.

오늘 팀 회의를 열어야 한다. 회의실 크기 때문에 회의에는 (당신을 제외하고) 정확히 KK명이 참석해야 한다. 회의는 당신이 출근한 시각으로부터 SS초 후에 시작할 수 있다. SS의 값은 마음대로 정할 수 있지만, 양의 실수이면서 정수가 아니어야 한다. 그 시작 시각에 이미 출근해 있는 모든 사람이 회의에 참석한다.

부하 직원의 도착 시각을 조정할 수 있다. $1를 내고 부하 직원 한 명을 골라, 그 직원의 도착 시각을 1초 앞당기거나 1초 늦출 수 있다. ii번째 직원의 조정된 도착 시각을 BiB_i라 하면 0≤Bi≤T0 \le B_i \le T를 만족해야 한다. 즉, 부하 직원은 당신보다 일찍 도착해서는 안 되며, 당신의 출근 시각보다 TT초를 초과하여 늦게 도착해서도 안 된다. 원하는 만큼 많은 부하 직원의 도착 시각을 조정할 수 있고, 같은 직원을 두 번 이상 조정할 수도 있다.

(당신을 제외하고) 정확히 KK명이 참석하는 회의를 열 수 있도록 하는 데 필요한 최소 금액을 구하라. 불가능하면 -1을 출력한다.

입력

첫째 줄에 세 정수 NN, KK, TT (1≤K≤N≤1000001 \le K \le N \le 100000, 0≤T≤10000000000 \le T \le 1000000000)가 주어진다. NN은 부하 직원의 수, KK는 회의 참석자 수, TT는 도착 시각의 상한이다. 둘째 줄에 NN개의 정수 A1,A2,…,ANA_1, A_2, \dots, A_N (0≤Ai≤T0 \le A_i \le T)이 주어지며, 각 부하 직원의 도착 시각을 나타낸다.

출력

(당신을 제외하고) 정확히 KK명이 참석하는 회의를 열 수 있도록 하는 데 필요한 최소 금액을 한 줄에 출력한다. 불가능하면 대신 -1을 출력한다.

힌트

회의 시작 시각 SS는 양의 실수이면서 정수가 아니어야 하므로, 그 정수 부분 X=⌊S⌋X = \lfloor S \rfloor는 00 이상의 정수이다. 조정된 도착 시각은 모두 정수이므로, 회의 참석자는 정확히 Bi≤XB_i \le X를 만족하는 직원들이다.

예제4

  1. 예제 1

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

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

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

    입력
    2 1 0
    0 0
    
    예상 출력
    -1