Giới thiệu
Bạn có một người bạn liên tục hỏi bạn về các khoản vay và bạn đang mệt mỏi vì điều đó. Hôm nay, anh lại đến vay tiền. Thay vì từ chối lời đề nghị của anh ta, bạn có một ý tưởng tuyệt vời: troll bạn của bạn bằng cách cho anh ta càng nhiều tiền / hóa đơn càng tốt.
Thử thách
Bạn sẽ lấy làm đầu vào: số tiền mà bạn của bạn muốn vay và số tiền / hóa đơn bạn có. Đối với thử thách này, các mệnh giá có thể là $ 20,00, $ 10,00, $ 5,00, $ 2,00, $ 1, $ 0,25, $ 0,10, $ 0,05 và $ 0,01. Một ví dụ về đầu vào là 5.67, [5, 3, 4, 5, 5, 9, 8, 1, 2]
nếu bạn của bạn muốn 5,67 đô la và bạn có 5 hóa đơn 20 đô la, 3 đô la 10 đô la, v.v. Đầu ra của bạn sẽ là số tiền / hóa đơn mang lại cho bạn của bạn càng nhiều kim loại / giấy / nhựa càng tốt.
Nếu không thể đưa cho bạn của bạn số tiền chính xác mà anh ta muốn, hãy cho anh ta số tiền gần nhất bạn có thể trả lớn hơn số tiền anh ta muốn. Ví dụ: nếu bạn của bạn muốn 0,07 đô la nhưng bạn chỉ có [0, 0, 0, 0, 0, 2, 4, 2, 0]
, hãy đưa cho anh ấy 2 đô la 0,05 đô la (không phải 1 đô la 0,10 vì điều đó sẽ không mang lại cho anh ấy càng nhiều tiền càng tốt!).
Nếu bạn của bạn muốn có nhiều tiền hơn bạn có, hãy đưa cho anh ta tất cả tiền của bạn (và cầu nguyện bạn sẽ không cần phải mua bất cứ thứ gì).
Các trường hợp thử nghiệm
Input: 6.54, [9, 8, 7, 6, 5, 4, 3, 2, 4]
Output: [0, 0, 0, 1, 4, 1, 2, 1, 4]
Input: 2, [0, 1, 0, 0, 0, 0, 0, 0, 0]
Output: [0, 1, 0, 0, 0, 0, 0, 0, 0]
Input: 9999, [0, 0, 0, 0, 0, 0, 0, 0, 1]
Output: [0, 0, 0, 0, 0, 0, 0, 0, 1]
Input: 0, [99, 99, 99, 99, 99, 99, 99, 99, 99]
Output: [0, 0, 0, 0, 0, 0, 0, 0, 0]
Đây là mã golf nên mã ngắn nhất sẽ thắng.
2.00
và20.00
nhưng không0.2
hoặc0.02
: