키위주스
시간 제한2초메모리 제한512 MB
용량 C인 N개의 병 사이에서 한 병이 비거나 가득 찰 때까지 주스를 부어, 모든 병의 최종 양에 대한 가격 합을 최대로 만든다.
문제
최대 용량이 리터인 병이 개 있다. 번 병에는 키위주스가 리터 들어 있다.
도토리는 이 키위주스를 팔아 노트북을 새로 사려고 한다. 주스 한 병의 값은 그 병에 들어 있는 양으로만 정해진다. 0리터부터 리터까지 양마다 값이 따로 매겨져 있고, 많이 들어 있다고 해서 값이 더 비싸지는 않다. 0리터가 든 병 하나가 리터로 가득 찬 병 하나보다 비쌀 수도 있다.
도토리는 병을 그대로 팔지 않고 주스를 서로 옮겨 담아 값을 더 올리려고 한다. 옮겨 담는 규칙은 이렇다. 서로 다른 두 병 와 를 골라 에서 로 주스를 옮기면, 가 비거나 가 가득 찰 때까지 멈추지 않고 부어야 한다. 예를 들어 이고 에 5리터, 에 7리터가 들어 있으면 옮긴 뒤 는 3리터, 는 10리터가 된다. 같은 조건에서 가 3리터, 가 4리터였다면 옮긴 뒤 는 0리터, 는 7리터가 된다.
옮겨 담는 횟수에는 제한이 없다. 도토리는 주스가 모두 팔린다고 확신하므로 병 개의 값을 전부 더한 금액을 받는다. 도토리가 받을 수 있는 금액의 최댓값을 구하여라.
입력
첫째 줄에 병의 개수 과 병의 최대 용량 가 주어진다. (, )
둘째 줄에 각 병에 들어 있는 주스의 양 이 주어진다. ()
셋째 줄에 양마다의 값 가 0리터부터 리터까지 차례로 주어진다. ()
출력
도토리가 받을 수 있는 금액의 최댓값을 한 줄에 출력한다.