자판기
시간 제한1초메모리 제한128 MB
간식 가격과 재고, 예산이 주어질 때, 어떤 종류를 사면 그보다 번호가 작고 재고가 남은 모든 종류가 하나씩 덤으로 나온다. 받는 간식 가치 합의 최댓값을 구한다.
문제
어느 자판기가 번부터 번까지 번호가 매겨진 가지 종류의 과자를 판매한다. 번 과자의 가격은 이고, 자판기에는 현재 번 과자가 개 들어 있다.
이 자판기는 고장이 나 있다. 번 과자를 하나 구매하면(재고가 개 이상 남아 있는 종류만 구매할 수 있다) 자판기는 만큼의 돈을 받은 뒤, 그 과자와 함께 재고가 남아 있는 번의 모든 종류에서 과자를 하나씩 더 내보낸다. 번부터 번 중 이미 품절된 종류는 그냥 건너뛴다. 이렇게 나온 과자(직접 구매한 것과 덤으로 나온 것 모두)는 해당 종류의 남은 재고를 각각 개씩 줄인다.
처음에 만큼의 돈을 가지고 있고, 원하는 순서로 계속 과자를 구매할 수 있으며, 돈을 모두 쓸 필요는 없다. 지출이 를 넘지 않도록 하면서 얻을 수 있는 과자들의 가격 합(직접 산 것과 덤 모두 포함)의 최댓값을 구하여라.
입력
첫째 줄에 두 정수 과 가 주어진다 . 각각 과자 종류의 수와 가지고 있는 돈의 양이다.
둘째 줄에 개의 정수 이 주어진다 . 각 종류의 가격이다.
셋째 줄에 개의 정수 이 주어진다 . 자판기에 들어 있는 각 종류의 개수이다.
출력
이하의 돈만 사용하여 얻을 수 있는 과자 가격 합의 최댓값을 정수 하나로 출력한다.
참고
첫 번째 예제에서는 먼저 번 과자를 산다(가격 지불). 그러면 자판기가 번 과자도 하나씩 내보낸다(번은 품절이라 건너뛴다). 이어서 번 과자를 산다(가격 지불). 그러면 번 과자가 하나 더 나온다. 두 번의 구매에 든 돈은 이고, 얻은 과자들의 가격 합은 이다.