만드는 중입니다

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

풍선 공장

면접 대비

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

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

보통10점 중 5점

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

문제

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

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

입력

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

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

출력

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

힌트

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

예제2

  1. 예제 1

    입력
    3 8
    5 7 3
    
    예상 출력
    14
    
  2. 예제 2

    입력
    1 5
    7
    
    예상 출력
    35