세계 정복

면접 대비

시간 제한2초메모리 제한128 MB

요약
N개 나라의 인구 수가 주어질 때, 각 그룹이 서로 다른 나라 사람 K명으로 구성되도록 만들 수 있는 최대 그룹 수를 구합니다.
난이도

보통10점 중 5점

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

문제

세준이는 세계의 N개 나라를 정복했다. 그런데 각 나라의 사람들이 서로 잘 어울리지 않는다는 사실을 알게 되었고, 모든 사람들이 서로 친해지도록 그룹을 만들려고 한다.

그룹을 만드는 규칙은 다음과 같다.

  • 한 그룹에는 정확히 K명이 들어가야 한다.
  • 한 그룹 안의 사람들은 모두 서로 다른 나라 출신이어야 한다.

각 나라에 사는 사람 수가 주어질 때, 만들 수 있는 그룹의 최대 개수를 구하자. 어느 그룹에도 들어가지 못한 사람은 무시해도 된다.

가령 5개 나라에 각각 4명씩 살고 있고 K가 4라면, 최대 5개의 그룹을 만들 수 있다. 각 그룹은 5개 나라 중 서로 다른 4개 나라에서 한 명씩 뽑아 만들면 된다.

입력

첫째 줄에 나라의 수 N과 그룹의 크기 K가 주어진다. N과 K는 자연수이며, K <= N <= 50, K <= 20을 만족한다.

둘째 줄에는 각 나라에 사는 사람 수 N개가 공백으로 구분되어 주어진다. 각 수는 1 이상 1,000,000,000 이하이다.

출력

만들 수 있는 그룹의 최대 개수를 출력한다.

정답은 2^63 - 1보다 작거나 같다.

예제4

  1. 예제 1

    입력
    5 4
    4 4 4 4 4
    
    예상 출력
    5
  2. 예제 2

    입력
    6 5
    1 2 3 4 5 6
    
    예상 출력
    3
    
  3. 예제 3

    입력
    6 2
    1000000000 1000000000 1000000000 1000000000 1000000000 1000000000
    
    예상 출력
    3000000000
    
  4. 예제 4

    입력
    17 7
    96 17 32 138 112 50 7 19 412 23 14 50 47 343 427 22 39
    
    예상 출력
    166