МАГАЗИН
면접 대비시간 제한1초메모리 제한1024 MB
물건 가격들을 여러 영수증으로 나누어, 각 영수증에서 가장 싼 floor(개수/k)개가 무료가 되도록 할 때 지불할 최소 금액을 구한다.
문제
Тодор 할아버지에게는 큰 가족이 있다. 아들 셋과 손자 아홉 명이다. 이들 모두 먹여 살려야 하므로, 일주일에 한 번 가게에 간다.
오늘 가게에 들어간 그는 «k번째 상품마다 무료»라는 행사가 진행 중인 것을 보았다. 행사 규칙은 다음과 같다. 손님은 계산대에 상품을 보여 주고 영수증을 받는다. 영수증에 n개의 상품이 적혀 있으면, 가장 싼 상품 n/k개(내림)가 무료가 된다.
예를 들어 영수증에 20, 10, 100, 40, 10 레바짜리 상품 5개가 적혀 있고 k = 2라면, 10 레바짜리 상품 두 개가 무료가 된다. 그러면 손님은 총 160 레바를 내야 한다.
Тодор 할아버지는 상품을 골라 계산대로 향했다. 그러다가 사려는 상품을 여러 영수증으로 나누면 돈을 덜 쓸 수 있다는 것을 깨달았다.
프로그램 shop을 작성하여, 고른 상품을 여러 영수증으로 나눌 수 있을 때 Тодор 할아버지가 내야 할 최소 금액을 구하라.
입력
표준 입력의 첫째 줄에 정수 두 개 n과 k가 주어진다. 각각 Тодор 할아버지가 사려는 상품 개수와 «k번째 상품마다 무료» 행사의 매개변수다. 수는 공백 하나로 구분된다.
다음 줄에 정수 n개 ai가 주어진다. Тодор 할아버지가 사는 상품의 가격이다. 수는 공백 하나로 구분된다.
출력
표준 출력의 한 줄에 정수 하나를 출력한다. 상품에 대해 Тодор 할아버지가 내야 할 최소 금액이다.
제한
- 1 ≤ n ≤ 100 000
- 2 ≤ k ≤ 100
- 1 ≤ ai ≤ 10 000
힌트
Тодор 할아버지는 상품을 두 영수증으로 나눌 수 있다.
- 한 영수증에 100 레바와 40 레바짜리 상품을 넣는다. 40 레바짜리 상품이 무료가 된다.
- 다른 영수증에 나머지 상품을 넣는다. 여기서는 10 레바짜리 상품 하나가 무료가 된다.
그러면 총 130 레바를 내야 한다.