풍선 공장

각자 A_i분마다 풍선 하나를 만드는 N명의 직원이 M개의 풍선을 모두 완성하는 최소 시간을 구한다.

보통5이분 탐색그리디수학배열면접 대비아직 제출이 없습니다시간 제한1초메모리 제한256 MB

문제

대회에서 MM개의 풍선을 NN명의 스태프가 나누어 만든다. ii번 스태프가 풍선 하나를 만드는 데 걸리는 시간은 AiA_i분이며, 한 풍선을 끝내면 쉬지 않고 다음 풍선을 만들 수 있다. 모든 스태프가 00분에 동시에 작업을 시작할 때, MM개의 풍선을 모두 완성하는 데 필요한 최소 시간을 구하라. 풍선의 종류는 구분하지 않는다.

예를 들어 풍선 하나에 55분이 걸리는 스태프는 00분에 시작해서 55분에 첫 풍선을 완성하고, 바로 다음 풍선을 시작해서 1010분에 두 번째 풍선을 완성한다.

입력

첫째 줄에 스태프의 수 NN과 만들어야 할 풍선의 개수 MM이 주어진다 (1N,M10000001 \le N, M \le 1\,000\,000).

둘째 줄에 각 스태프가 풍선 하나를 만드는 데 걸리는 시간 AiA_i분이 NN개 주어진다 (1Ai10000001 \le A_i \le 1\,000\,000).

출력

MM개의 풍선을 모두 만드는 데 필요한 최소 시간(분)을 하나의 정수로 출력한다.

힌트

후보 시간 TT분이 충분한지는 직접 셀 수 있다. ii번 스태프는 TT분 동안 T/Ai\lfloor T / A_i \rfloor개의 풍선을 완성하므로, 모든 스태프의 완성 개수 합이 MM 이상이면 TT분 안에 MM개를 만들 수 있다. 이 판정을 이용해 가능한 시간 범위를 이분 탐색하면 최소 시간을 찾을 수 있다.