Ở Canada, đồng xu không còn được lưu hành. Thanh toán tiền mặt được làm tròn đến 5 xu gần nhất.
Tiền có thể được tiết kiệm bằng cách chia nhỏ mua hàng. Ví dụ: hai mặt hàng $ 1,02 có giá 2,04 đô la làm tròn lên tới 2,05 đô la, nhưng khi mua các mặt hàng trong các giao dịch mua riêng lẻ, mỗi mức giá làm tròn thành 1 đô la với tổng số tiền là 2 đô la. Tuy nhiên, khi mua hai mặt hàng với giá 1,03 đô la mỗi mặt hàng, tốt hơn là mua chúng trong một lần mua.
Một cách khác để tiết kiệm tiền là sử dụng thẻ tín dụng khi làm tròn không thuận lợi, vì thanh toán tín dụng không được làm tròn. Nếu chúng tôi muốn hai mặt hàng 1,04 đô la, tổng giá sẽ làm tròn lên tới 2,10 đô la bất kể chúng tôi chia các giao dịch mua như thế nào. Do đó, chúng ta nên thanh toán cho các mặt hàng này bằng thẻ tín dụng.
Viết hàm hoặc chương trình chấp nhận danh sách giá của các mặt hàng dưới dạng số nguyên tính bằng xu và đưa ra tổng giá thấp nhất có thể (tính bằng xu) cho các mặt hàng có thể đạt được thông qua chuỗi mua hàng, từng khoản bằng tiền mặt hoặc bằng tín dụng.
Mã ngắn nhất sẽ thắng.
Các trường hợp thử nghiệm
[] : 0
[48] : 48
[92, 20] : 110
[47, 56, 45] : 145
[55, 6, 98, 69] : 225
[6, 39, 85, 84, 7] : 218
[95, 14, 28, 49, 41, 39] : 263
[92, 6, 28, 30, 39, 93, 53] : 335
[83, 33, 62, 12, 34, 29, 18, 12] : 273
[23, 46, 54, 69, 64, 73, 58, 92, 26] : 495
[19, 56, 84, 23, 20, 53, 96, 92, 91, 58] : 583
[3, 3, 19, 56, 3, 84, 3, 23, 20, 53, 96, 92, 91, 58, 3, 3] : 598
[2, 3, 4, 4, 4, 4, 4] : 19
s.reduce(:+)
(thông thường bạn thậm chí không cần parantantes, nhưng trong trường hợp của bạn ...) và nội tuyếnm
cho thêm 2 ký tự.