मुझे अपने दोस्तों को कॉल करने की आवश्यकता है लेकिन मेरे कॉर्डलेस फोन के बटन ठीक से काम नहीं कर रहे हैं। मेरे द्वारा दबाए जाने वाले एकमात्र बटन [ऊपर], [नीचे] और [कॉल] हैं। [ऊपर] और [नीचे] का उपयोग मेरी हाल की कॉल में नेविगेट करने के लिए किया जा सकता है और [कॉल] का उपयोग चयनित नाम को कॉल करने के लिए किया जा सकता है। मेरे फोन में एक सूची है जो Nहाल ही में कॉल रखती है , और मुझे पता है कि मुझे जिन मित्रों को कॉल करने की आवश्यकता है वे सभी इस सूची में हैं।
कार्य:
आपको एक नंबर Nऔर नामों की एक सूची मिलेगी L:
Nहाल ही में मेरे फोन याद कर सकते हैं की संख्या है;Lमुझे जिस क्रम में कॉल करने की आवश्यकता है, उसके नाम हैं।
आपको बटन प्रेस की संख्या को आउटपुट करना होगा जो मुझे हाल ही में कॉल सूची की एक इष्टतम व्यवस्था में करने की आवश्यकता है।
उदाहरण:
-> इनपुट:
अन्ना, बॉब और फिर अन्ना को कॉल करना। हाल ही में कॉल की सूची के साथ आकार 5।
5
Anna
Bob
Anna
-> आउटपुट:
संभव इष्टतम व्यवस्था: Anna, Foo, Bar, Foobar, Bob
5 # Key presses: [Call] Anna, [Up] + [Call] Bob, [Down] + [Call] Anna
अधिक परीक्षण के मामले:
Input: 5, Anna, Bob, Carl
Output: 5
Input: 5, Anna, Bob, Carl, Anna
Output: 8
Input: 5, A, B, C, D, E, A
Output: 11
Input: 6, A, B, C, D, E, A
Output: 12
Input: 4, A, B, C, B, A
Output: 10
नियम:
- आपका कर्सर हमेशा सूची की पहली स्थिति में शुरू होगा;
- आप इनपुट
NऔरLकिसी भी स्रोत से ले सकते हैं : कीबोर्ड, पैरामीटर, फ़ाइल, आदि; - सूची में नाम किसी भी उचित प्रारूप में हो सकते हैं जैसे: तार, पूर्णांक, वर्ण;
- जब आप हाल की कॉल सूची के अंत तक पहुँचते हैं और [डाउन] फिर से दबाते हैं, तो आपका कर्सर इधर-उधर हो जाता है। ऐसा ही तब होता है जब आप हाल की कॉल सूची की भीख मांगते हैं और दबाते हैं [ऊपर];
- जब आप किसी को कॉल करते हैं, तो उस व्यक्ति का नाम हाल की कॉल सूची की पहली स्थिति में चला जाएगा और बाकी को नीचे धकेल दिया जाएगा;
- जब आप किसी को कॉल करते हैं, तो आपके कर्सर को पहले स्थान पर ले जाया जाएगा;
- हाल ही की कॉल सूची में एक मित्र का नाम एक से अधिक बार नहीं आ सकता है;
- आप डमी प्रविष्टियों के साथ अपनी हाल की कॉल सूची भर सकते हैं (उदाहरण देखें);
- कॉल करने वाले दोस्तों की संख्या इससे अधिक नहीं होगी
N।