실행 시간 제한 | 메모리 제한 |
---|---|
2 초 | 512 MB |
사업가 철우는 도구 대여 서비스를 시작하려 합니다.
철우에게는 하루에 일정한 양의 일을 처리할 수 있는 ()개의 도구가 있습니다. 철우의 가게 근처에 있는 개의 상점들은 () 각각 일정 가격에 일을 처리해달라고 제안하고 있습니다. 또한, 철우의 ()명의 이웃들도 각각 일정 가격에 도구를 대여하려고합니다. ().
철우는 각 도구를 상점에 대여할지, 아니면 이웃에게 대여할지 결정해야 합니다. 그가 하루에 벌 수 있는 최대 금액을 찾도록 도와주십시오.
입력 값의 첫 번째 줄에는 , , 그리고 이 있습니다. 그 다음 줄에는 각각의 줄에 정수 ()가 있어, 철우의 번째 도구가 하루에 개의 작업을 처리할 수 있다는 것을 나타냅니다.
이어서 줄에는 각각의 줄에 정수 와 ()가 있는데, 번째 상점이 작업당 센트로 최대 개의 작업을 처리하길 원합니다. 철우는 각 상점에게 0에서 개의 작업을 할당받을 수 있다는 점을 유의해 주십시오. 마지막으로 줄에는 각각의 줄에 정수 ()가 있어, 철우의 이웃 중 한명이 도구를 하루에 센트에 대여받길 원한다는 것을 나타냅니다.
출력은 철우가 하루에 도구를 사용하거나 대여함으로써 벌 수 있는 최대 이익을 나타내는 한 줄이어야 합니다. 출력값은 표준 32비트 정수에 들어갈 수 없을 정도로 클 수 있으므로, C/C++의 'long long' 같은 더 큰 정수 타입을 사용해야 할 수도 있습니다.
5 3 4 6 2 4 7 1 10 25 2 10 15 15 250 80 100 40
725
철우은 #1과 #4의 도구를 사용해서서 13개의 작업을 처리해야 합니다. 그는 주문받은 10개의 작업을 완전히 처리해서 250센트를 벌어야 하며, 남은 3개의 작업을 각각 15센트에 처리해 총 295센트의 이익을 얻을 수 있습니다.
그 다음, 그는 나머지 세 개의 도구를 250, 80, 100센트에 대여해, 추가로 430센트를 벌어야 합니다. (40센트 대여를 요청은 무시합니다.)
이는 총 725센트의 하루 이익을 의미합니다.
출처: USACO 2018 January Contest, Silver Problem 2. Rental Service