यह चुनौती कई मैट्रिक्स के उत्पाद के लिए सबसे कुशल गुणन क्रम की गणना करना है ।
मानक इनपुट की एक पंक्ति पर मेट्रिसेस का आकार निर्दिष्ट है। आपको मानक आउटपुट पर प्रिंट करना चाहिए पूर्णांकों की एक सूची उस क्रम को दर्शाती है जिसमें कुल गुणा लागत को कम करने के लिए गुणन करना है।
उदाहरण 1
इनपुट
5x6 6x12 12x100 100x7
उत्पादन
3 2 1
इनपुट लाइन एक मैट्रिक्स-आकार की अंतरिक्ष-अलग-अलग सूची होगी, जिनमें से प्रत्येक पंक्तियों की संख्या है, उसके xबाद कॉलम की संख्या है। उदाहरण के लिए, 4 मैट्रिसेस को एक साथ गुणा करने के लिए (इसलिए 3 कुल गुणन) हैं, और चूंकि मैट्रिक्स गुणन सहयोगी है इसलिए उन्हें किसी भी क्रम में किया जा सकता है।
आउटपुट वह क्रम होना चाहिए जिसमें कुल लागत को कम करने के लिए गुणन करना है। यह अगले प्रदर्शन करने के लिए गुणक के सूचकांक का प्रतिनिधित्व करने वाले पूर्णांकों की एक अलग-अलग सूची होनी चाहिए। एन मैट्रिसेस के लिए, इस सूची में एन -1, समावेशी के माध्यम से नंबर 1 होना चाहिए। उदाहरण 1 के लिए, आउटपुट का 3 2 1मतलब है कि आपको 12x100 * 100x7पहले गुणा करना चाहिए , फिर 6x12 * 12x7गुणा (पिछले चरण का दूसरा मैट्रिक्स परिणाम), फिर अंत में परिणाम 5x6 * 6x7गुणा करना चाहिए।
मैट्रिक्स गुणन हमेशा संगत होगा, अर्थात मैट्रिक्स के कॉलम की संख्या बाद के मैट्रिक्स की पंक्तियों की संख्या से मेल खाएगी। मान लें कि दो मेट्रिसेस AxB * BxCको गुणा करने की लागत है A*B*C।
आपके कोड को 100 मैट्रिसेस तक की सूचियों को संभालना होगा, प्रत्येक आयाम को 999 तक, और उचित समय में ऐसा करना होगा।
उदाहरण 2
इनपुट
5x10 10x5 5x15 15x5
उत्पादन
1 3 2
या
3 1 2
उदाहरण 3
इनपुट
22x11 11x78 78x123 123x666 666x35 35x97 97x111 111x20 20x50
उत्पादन
2 3 4 5 6 7 8 1
नोट: सत्यापन के लिए, तीन उदाहरणों के लिए सबसे अच्छी कुल लागत 9114, 750 और 1466344 है।
सबसे छोटा कोड जीतता है!