만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

도도의 음식 준비

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

요약
요리사 N명에게 최대 C번의 격려를 나눠 주어 조리 시간을 1초씩 영구히 줄일 때, K개의 요리를 가장 빨리 완성하는 시간을 구한다.
난이도

보통10점 중 4점

유형
이분 탐색, 그리디, 수학, 완전 탐색
정답자
아직 제출이 없습니다

문제

도도는 주방장이다. 총 KK개의 요리를 준비하는 최소 시간을 구해야 한다.

각 요리사는 자신만의 음식 조리 시간을 가진다. 음식 조리 시간은 음식 하나를 만드는 데 걸리는 시간이다.

도도는 요리사에게 격려를 할 수 있다. 격려받은 요리사는 음식 조리 시간이 영구적으로 1초 감소한다.

도도는 한 요리사에게 여러 번 격려할 수 있지만, 요리사의 음식 조리 시간을 1초 미만으로 줄일 수는 없다.

도도를 위해 요리에 걸리는 최소 시간을 출력하는 프로그램을 만들어 보자.

입력

첫째 줄에 요리사의 수 NN (1≤N≤101 \le N \le 10), 만들어야 할 음식의 개수 KK (1≤K≤1 000 0001 \le K \le 1\,000\,000), 격려해줄 수 있는 횟수 CC (0≤C≤50 \le C \le 5)가 주어진다.

둘째 줄에 길이가 NN인 정수 수열 AA가 주어진다. ii번째로 주어지는 수 AiA_i는 ii번째 요리사의 음식 조리 시간이다. (1≤i≤N1 \le i \le N, 1≤Ai≤1 000 0001 \le A_i \le 1\,000\,000)

출력

첫째 줄에 KK개의 음식 조리가 완료되는 최소 시간을 출력한다.

예제3

  1. 예제 1

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

    입력
    2 204 1
    100 101
    
    예상 출력
    10200
    
  3. 예제 3

    입력
    2 200 1
    100 101
    
    예상 출력
    9999