높은 헛간 짓기

소가 K마리, 순서가 있는 N개 층 각각에 필요한 작업량 a_i가 주어질 때, 모든 층에 소를 최소 한 마리씩 배정하여 완공 시간의 합 a_i/c_i을 최소로 만들고 반올림한 값을 구한다.

어려움9그리디수학이분 탐색아직 제출이 없습니다시간 제한2초메모리 제한512 MB

문제

농부 존은 소 KK마리의 도움을 받아 NN층짜리 새 헛간을 짓는다 (1NK10121 \le N \le K \le 10^{12}, N105N \le 10^5). 헛간을 최대한 빨리 완성하도록 소들에게 일을 나누는 방법을 구해 보자.

각 소는 헛간의 NN개 층 중 정확히 한 층에 배정되어야 하고, 모든 층에는 소가 적어도 한 마리 배정되어야 한다. ii번째 층을 짓는 데 필요한 총 작업량은 aia_i이고, 소 한 마리는 한 시간에 작업을 1만큼 한다. 따라서 ii번째 층에 소 cc마리가 일하면 그 층은 ai/ca_i/c 시간 만에 완성된다. 안전을 위해 ii번째 층이 완성되어야 i+1i+1번째 층 공사를 시작할 수 있다.

소를 층에 최적으로 배정했을 때 헛간을 완성하는 데 걸리는 최소 총 시간을 구하라. 이 값을 가장 가까운 정수로 반올림해 출력한다. 정답은 두 정수 사이의 경계에서 0.1보다 멀리 떨어져 있음이 보장된다.

입력

첫째 줄에 NNKK가 주어진다.

다음 NN개 줄에 a1,a2,,aNa_1, a_2, \ldots, a_N이 한 줄에 하나씩 주어진다. 각 값은 101210^{12} 이하의 양의 정수이다.

출력

헛간을 짓는 데 필요한 최소 시간을 가장 가까운 정수로 반올림해 출력한다.