이상한 술집
면접 대비시간 제한1초메모리 제한512 MB
주전자 N개의 용량과 사람 수 K가 주어질 때, 모든 주전자에 대해 floor(용량 / X)의 합이 K 이상이 되는 가장 큰 정수 X를 구한다.
문제
프로그래밍 대회 전날, 은상과 친구들은 이상한 술집에 모였다. 이 술집에서 막걸리를 시키면 주전자의 크기는 늘 같지만 안에 든 막걸리의 양은 매번 다르다. 한 번 주문하면 802ml가 나오기도 하고 1002ml가 나오기도 한다.
은상은 막걸리를 주전자 주문하고, 자신을 포함한 명에게 막걸리를 똑같은 양씩 나눠 주려고 한다. 그런데 은상과 친구들은 서로 다른 주전자의 막걸리가 섞이는 것을 싫어한다. 그래서 나눠 주고 난 뒤 주전자에 막걸리가 조금 남으면 그냥 버린다. 즉, 여러 주전자에 남은 막걸리를 모아서 다시 나눠 주는 일은 없다.
예를 들어 5명이 3 주전자를 주문해서 각 주전자에 1002ml, 802ml, 705ml가 담겨 나왔다고 하자. 이것을 한 사람에게 401ml씩 나눠 주면 각 주전자에서 200ml, 0ml, 304ml는 버린다.
명 모두에게 똑같이 나눠 줄 수 있는 한 사람당 막걸리 양(ml)의 최댓값을 구하라. 한 사람당 양은 정수 ml이다.
입력
첫째 줄에 은상이 주문한 막걸리 주전자의 개수 과 은상을 포함한 사람 수 가 주어진다.
둘째 줄부터 개의 줄에 걸쳐 각 주전자에 든 막걸리의 양(ml)이 한 줄에 하나씩 주어진다.
- (주전자의 개수는 사람 수보다 많지 않다.)
- 각 주전자에 든 막걸리의 양은 이상 이하의 정수이다.
출력
첫째 줄에 명에게 똑같이 나눠 줄 수 있는 한 사람당 막걸리 양(ml)의 최댓값을 출력한다. 한 사람당 1ml씩도 명에게 나눠 줄 수 없다면 0을 출력한다.
힌트
두 번째 예제에서 한 사람당 205ml로 나누면 각 주전자에서 2, 2, 3, 4명분이 나와 모두 11명분이 된다. 하지만 206ml로 나누면 2, 2, 3, 3명분으로 10명분밖에 되지 않으므로 양을 조금 줄여야 한다.