У Канаді копійки більше не розповсюджуються. Грошові виплати округляються до найближчих 5 центів.
Гроші можна заощадити, розділивши покупки. Наприклад, два позиції в розмірі 1,02 долара коштують 2,04 долара, що доходить до 2,05 долара, але, купуючи товари окремо, кожна ціна до 1,00 долара на загальну суму 2,00 долара. Однак, купуючи два предмети по 1,03 долара кожен, краще купувати їх за одну покупку.
Інший спосіб заощадити гроші - це використання кредитної картки, коли округлення є несприятливим, оскільки кредитні платежі не округляються. Якщо ми хочемо два позиції в розмірі 1,04 долара, загальна ціна складе до 2,10 доларів незалежно від того, як ми розділили покупки. Тому ми повинні платити за ці предмети кредитною карткою.
Напишіть функцію або програму, яка приймає перелік цін на товари як цілі числа в центах і виводить найнижчу можливу загальну ціну (в центах) для тих предметів, які можна досягти за допомогою послідовності покупок, кожна або готівкою, або кредитом.
Найкоротший код виграє.
Тестові справи
[] : 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(:+)
(зазвичай вам навіть не потрібні парантези, але у вашому випадку ...) та ввестиm
додаткові 2 символи.