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

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

용돈 관리

면접 대비

시간 제한1초메모리 제한128 MB

요약
N일치 일별 지출이 주어질 때, 강제 인출과 여분 인출을 포함해 정확히 M번 인출하면서 모든 날을 버틸 수 있는 가장 작은 고정 인출액 K를 구한다.
난이도

보통10점 중 5점

유형
이분 탐색, 그리디, 시뮬레이션, 배열
정답자
아직 제출이 없습니다

문제

현우는 용돈을 효율적으로 쓰기 위해 계획을 세우려고 한다. 앞으로 NN일 동안 매일 사용할 금액이 정해져 있고, 현우는 통장에서 돈을 빼서 쓰되 인출하는 횟수를 정확히 MM번으로 하려고 한다.

현우는 통장에서 한 번에 KK원을 인출한다. 지금 가진 돈으로 그날 필요한 금액을 낼 수 있으면 그대로 쓰고, 남은 돈은 다음 날로 넘긴다. 만약 가진 돈이 그날 필요한 금액보다 적으면, 남은 돈을 다시 통장에 넣은 뒤 새로 KK원을 인출하고 그날 금액을 낸다.

또한 현우는 숫자 MM을 좋아해서 인출 횟수를 정확히 MM번으로 맞추고 싶어 한다. 그래서 가진 돈이 그날 필요한 금액보다 많더라도, 원한다면 남은 돈을 통장에 넣고 다시 KK원을 인출할 수 있다. 즉, 꼭 필요한 최소 인출 횟수가 MM 이하이기만 하면 추가 인출을 끼워 넣어 정확히 MM번을 맞출 수 있다.

현우는 돈을 아끼기 위해 인출 금액 KK를 최소로 하려고 한다. NN일을 모두 보내면서 인출을 정확히 MM번 할 수 있는 가장 작은 KK를 구하는 프로그램을 작성하시오.

입력

첫째 줄에 NN과 MM이 공백으로 구분되어 주어진다. (1≤N≤100,0001 \le N \le 100{,}000, 1≤M≤N1 \le M \le N)

둘째 줄부터 NN개의 줄에 걸쳐, ii번째 날에 현우가 사용할 금액이 한 줄에 하나씩 주어진다. (1≤1 \le 금액 ≤10,000\le 10{,}000)

출력

첫째 줄에 현우가 통장에서 인출해야 하는 최소 금액 KK를 출력한다.

예제1

  1. 예제 1

    입력
    7 5
    100
    400
    300
    100
    500
    101
    400
    
    예상 출력
    500