कनाडा में, पैसा अब परिचालित नहीं है। नकद भुगतान निकटतम 5 सेंट के लिए किया जाता है।
खरीद फरोख्त करके पैसा बचाया जा सकता है। उदाहरण के लिए, दो $ 1.02 वस्तुओं की कीमत $ 2.04 है जो कि $ 2.05 तक होती है, लेकिन अलग-अलग खरीद में आइटम खरीदते समय, प्रत्येक मूल्य $ 2.00 से $ $ 1.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 वर्णों के लिए इनलाइन ।