কানাডায়, পয়সা আর প্রচার হয় না। নগদ অর্থ প্রদানগুলি কাছাকাছি 5 সেন্টে গোল হয়।
বিভক্ত ক্রয়ের মাধ্যমে অর্থ সাশ্রয় করা যায়। উদাহরণস্বরূপ, দুটি $ 1.02 আইটেমের দাম $ 2.04 যার পরিমাণ $ 2.05 হয়, কিন্তু পৃথক ক্রমে আইটেমগুলি কেনার সময়, প্রতিটি মূল্য মোট $ 2.00 এর জন্য $ 1.00 হয়। যাইহোক, প্রতিটি আইটেম প্রতিটি at 1.03 এ কিনে, একক ক্রয়ে এগুলি কেনা ভাল।
অর্থ সাশ্রয়ের আরেকটি উপায় হ'ল ক্রেডিট কার্ড ব্যবহার করা যখন রাউন্ডিং প্রতিকূল হয়, কারণ ক্রেডিট প্রদানগুলি গোল হয় না। আমরা যদি দুটি $ 1.04 আইটেম চাই, আমরা কীভাবে ক্রয়গুলি বিভক্ত করি তা নির্বিশেষে মোট দাম $ 2.10 অবধি উঠে যাবে। সুতরাং, ক্রেডিট কার্ড সহ আমাদের এই আইটেমগুলির জন্য অর্থ প্রদান করা উচিত।
কোনও ফাংশন বা প্রোগ্রাম লিখুন যা সেন্টগুলিতে পূর্ণসংখ্যার হিসাবে আইটেমের দামের তালিকা গ্রহণ করে এবং সেই আইটেমগুলির জন্য সর্বনিম্ন সর্বমোট সর্বমোট মূল্যের (সেন্টে) আউটপুট দেয় যা প্রতিটি ক্রয়ের অনুক্রমের মাধ্যমে অর্জন করা যেতে পারে, প্রতিটি নগদ বা creditণের মাধ্যমে।
সংক্ষিপ্ততম কোড জিতেছে।
পরীক্ষার মামলা
[] : 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 টি অক্ষরের জন্য ইনলাইন ।