Không Thối Tiền
Nông dân John có đồng xu với các mệnh giá khác nhau. Anh ta cần thực hiện giao dịch mua hàng theo thứ tự. Mỗi giao dịch có một chi phí nhất định.
Với mỗi giao dịch, John phải dùng một đồng xu duy nhất để thanh toán. Đồng xu đó phải có giá trị lớn hơn hoặc bằng chi phí giao dịch. Tuy nhiên, người bán không thối tiền, nên phần dư sẽ bị mất. Mỗi đồng xu chỉ được dùng một lần, và khi dùng một đồng xu cho một giao dịch, nó sẽ thanh toán cho một dãy liên tiếp các giao dịch tiếp theo (bắt đầu từ giao dịch hiện tại) cho đến khi tổng chi phí vượt quá giá trị đồng xu.
Cụ thể hơn: John dùng các đồng xu theo thứ tự tùy ý. Mỗi đồng xu được dùng sẽ trả cho một đoạn liên tiếp các giao dịch tiếp theo chưa thanh toán, miễn tổng chi phí không vượt quá mệnh giá đồng xu. Các đoạn này phải phủ hết giao dịch.
Hãy tìm tổng mệnh giá lớn nhất của các đồng xu mà John không cần dùng (tức là giữ lại được nhiều tiền nhất), sao cho các đồng xu còn lại đủ để thanh toán tất cả giao dịch. Nếu không thể thanh toán hết, in .
Dữ liệu vào
- Dòng đầu: hai số nguyên và .
- dòng tiếp theo: mệnh giá của mỗi đồng xu.
- dòng tiếp theo: chi phí của mỗi giao dịch.
Dữ liệu ra
- Một số nguyên duy nhất: tổng mệnh giá lớn nhất giữ lại được, hoặc nếu không thể thanh toán hết.
Ràng buộc
- Mệnh giá đồng xu:
- Chi phí giao dịch:
Ví dụ
| Input | Output | Giải thích |
|---|---|---|
| 3 6 12 15 10 6 3 3 2 3 7 |
12 | John dùng đồng xu 10 để trả 2 giao dịch đầu (6+3=9 ≤ 10), rồi dùng đồng xu 15 để trả 4 giao dịch còn lại (3+2+3+7=15 ≤ 15). Giữ lại đồng xu 12. |
| 2 5 4 3 4 9 7 3 9 |
-1 | Không có cách nào dùng 2 đồng xu (mệnh giá 4 và 3) để trả hết 5 giao dịch có tổng chi phí 32. |
Bình luận