헌책방
면접 대비시간 제한1초메모리 제한128 MB
N권 중 정확히 K권을 골라 팔 때, 한 장르에서 t권을 함께 팔면 그 장르에 t(t-1)원이 더해진다고 할 때 최대 총 판매가를 구한다.
문제
상근이가 사는 도시에는 헌책방이 있다. 데이트 비용을 감당하기 어려워진 상근이는 집에 있는 책을 헌책방에 팔기로 했다. 각 책에는 기준 가격이 정해져 있고, 헌책방은 기본적으로 이 가격으로 책을 매입한다.
헌책방은 모든 책을 소설, 만화, 잡지 등 10개의 장르로 분류하며, 장르에는 1번부터 10번까지 번호가 매겨져 있다. 이 가게는 같은 장르의 책을 한 번에 여러 권 매입할 때 더 높은 값을 쳐 준다.
같은 장르의 책을 한 번에 권 매입하면, 그 권 각각의 매입 가격이 기준 가격보다 원씩 높아진다. 예를 들어 같은 장르에서 기준 가격이 각각 원, 원, 원인 책 세 권을 한 번에 팔면, 세 권을 함께 매입하므로 각 매입 가격은 원, 원, 원이 된다.
상근이는 내일 데이트를 위해 가지고 있는 책 권 중 정확히 권을 팔려고 한다. 각 책의 기준 가격과 장르 번호가 주어질 때, 팔 권을 잘 골라 얻을 수 있는 총 매입 가격의 최댓값을 구하는 프로그램을 작성하시오.
입력
첫째 줄에 상근이가 가진 책의 수 과 팔려고 하는 책의 수 가 주어진다. (, )
다음 개의 줄에 각 책의 기준 가격 와 장르 번호 가 공백으로 구분되어 주어진다. (, )
출력
정확히 권을 팔 때 얻을 수 있는 총 매입 가격의 최댓값을 첫째 줄에 출력한다.
힌트
각 장르에서 파는 책 수 가 정해지면 추가 금액 은 항상 같으므로, 그 장르에서는 기준 가격이 높은 순으로 권을 고르는 것이 언제나 유리하다. 따라서 장르마다 몇 권을 팔지만 결정하면 되고, 10개 장르에서 파는 권수의 합이 정확히 가 되도록 배낭 문제처럼 조합해 최댓값을 찾으면 된다.