Di Kanada, sen tidak lagi diedarkan. Pembayaran tunai dibulatkan ke 5 sen terdekat.
Uang dapat dihemat dengan memisahkan pembelian. Sebagai contoh, dua item $ 1,02 berharga $ 2,04 yang membulatkan hingga $ 2,05, tetapi ketika membeli item dalam pembelian terpisah, masing-masing putaran harga menjadi $ 1,00 dengan total $ 2,00. Namun, ketika membeli dua item masing-masing dengan $ 1,03, lebih baik membelinya dalam satu pembelian.
Cara lain untuk menghemat uang adalah menggunakan kartu kredit ketika pembulatan tidak menguntungkan, karena pembayaran kredit tidak dibulatkan. Jika kita menginginkan dua item $ 1,04, total harga akan mencapai $ 2,10 terlepas dari bagaimana kita membagi pembelian. Karena itu, kita harus membayar barang-barang ini dengan kartu kredit.
Tulis fungsi atau program yang menerima daftar harga barang sebagai bilangan bulat dalam sen dan output harga total serendah mungkin (dalam sen) untuk barang-barang yang dapat dicapai melalui urutan pembelian, masing-masing baik secara tunai atau kredit.
Kode terpendek menang.
Uji kasus
[] : 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(:+)(biasanya Anda bahkan tidak perlu paranthes, tetapi dalam kasus Anda ...) dan sebarismuntuk 2 karakter tambahan.