이상한 술집

주전자 N개의 용량과 사람 수 K가 주어질 때, 모든 주전자에 대해 floor(용량 / X)의 합이 K 이상이 되는 가장 큰 정수 X를 구한다.

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

문제

프로그래밍 대회 전날, 은상과 친구들은 이상한 술집에 모였다. 이 술집에서 막걸리를 시키면 주전자의 크기는 늘 같지만 안에 든 막걸리의 양은 매번 다르다. 한 번 주문하면 802ml가 나오기도 하고 1002ml가 나오기도 한다.

은상은 막걸리를 NN 주전자 주문하고, 자신을 포함한 KK명에게 막걸리를 똑같은 양씩 나눠 주려고 한다. 그런데 은상과 친구들은 서로 다른 주전자의 막걸리가 섞이는 것을 싫어한다. 그래서 나눠 주고 난 뒤 주전자에 막걸리가 조금 남으면 그냥 버린다. 즉, 여러 주전자에 남은 막걸리를 모아서 다시 나눠 주는 일은 없다.

예를 들어 5명이 3 주전자를 주문해서 각 주전자에 1002ml, 802ml, 705ml가 담겨 나왔다고 하자. 이것을 한 사람에게 401ml씩 나눠 주면 각 주전자에서 200ml, 0ml, 304ml는 버린다.

KK명 모두에게 똑같이 나눠 줄 수 있는 한 사람당 막걸리 양(ml)의 최댓값을 구하라. 한 사람당 양은 정수 ml이다.

입력

첫째 줄에 은상이 주문한 막걸리 주전자의 개수 NN과 은상을 포함한 사람 수 KK가 주어진다.

둘째 줄부터 NN개의 줄에 걸쳐 각 주전자에 든 막걸리의 양(ml)이 한 줄에 하나씩 주어진다.

  • 1N100001 \le N \le 10\,000
  • 1K10000001 \le K \le 1\,000\,000
  • NKN \le K (주전자의 개수는 사람 수보다 많지 않다.)
  • 각 주전자에 든 막걸리의 양은 00 이상 23112^{31}-1 이하의 정수이다.

출력

첫째 줄에 KK명에게 똑같이 나눠 줄 수 있는 한 사람당 막걸리 양(ml)의 최댓값을 출력한다. 한 사람당 1ml씩도 KK명에게 나눠 줄 수 없다면 0을 출력한다.

힌트

두 번째 예제에서 한 사람당 205ml로 나누면 각 주전자에서 2, 2, 3, 4명분이 나와 모두 11명분이 된다. 하지만 206ml로 나누면 2, 2, 3, 3명분으로 10명분밖에 되지 않으므로 양을 조금 줄여야 한다.