목수 Sam은 N개의 주문을 받습니다. 어느날 그녀는 주문을 받기 위해선 M개의 기계가 부족한 것을 알았습니다.
모든 주문이 부족한 기계가 모두 필요한 것은 아니지만 각 주문마다 적어도 하나의 기계가 더 필요합니다.
주문을 받기위해 Sam은 부족한 기계를 사거나 빌려야 합니다.
각각의 주문이 서로 다른 작업의 양과 시간을 필요로 하기 때문에 기계를 빌리는 비용은 어떻게 주문이 들어오느냐에 따라 다릅니다.
기계의 구입비용은 주문에 상관없이 일정합니다. 한번 산 기계는 다음번에 추가 비용없이 사용할 수 있습니다.
그녀는 주문을 받기에 추가적으로 기계를 사거나 빌리는 비용이 너무 비싸면 주문을 거절할 수 있습니다.(이 경우 이익,손실이 없습니다.)
Sam의 이익을 최대화 하기 위해서 어떤 주문을 거절할지, 어떤 기계를 사야할지, 그리고 어떤 기계를 빌려야할지 도와주세요
si (1 <= si <= 20 000): 번호별 머신의 구입비용(머신이 총 M개필요하면 M개를 씀)
입력 2 3 (주문 2개를 받았고 총 3개의 머신이 부족합니다.) 100 2 (첫번째 주문 완료시 100의 소득을 얻고 2개의 머신이 필요합니다.) 1 30 (1번 머신이 필요하고 빌리는데 필요한 돈은 30입니다.) 2 20 (2번 머신이 필요하고 빌리는데 필요한 돈은 20입니다.) 100 2(두번째 주문 완료시 100의 소득을 얻고 2개의 머신이 필요합니다.) 1 40(1번 머신이 필요하고 빌리는데 필요한 돈은 40입니다.) 3 80(3번 머신이 필요하고 빌리는데 필요한 돈은 80입니다.) 50(1번 머신의 가격) 80(2번 머신의 가격) 110(3번 머신의 가격) 출력 50(최대 이익)
출처:ceoi/2008/ 번역:ironamor
To complete an order, Sam needs to either buy or rent each of the machines the order requires. Since different orders need different amounts of work (and thus time) on each machine, the rent for a machine may depend on the order that is completed on it. The purchase cost for a machine do not depend on the orders, though. A machine which is purchased once can be used to work on any number of orders at no extra cost.
If the cost caused by an order seem too high to Sam, she may choose to reject an order; this will lead to no cost (and no profit).
Help Sam decide which orders to reject, which machines to buy, and which machines to rent in order to maximize her profit.
There are two solutions leading to the maximum profit of 50:
The M lines after the last order block contain one integer each: the purchase price si (1 <= si <= 20 000) for each machine.
입력 2 3 100 2 1 30 2 20 100 2 1 40 3 80 50 80 110 출력 50
출처:ceoi/2008/