एक दिन आप केवल अपने आप को एक सरणी में पकड़े जाने के लिए जागते हैं। आप उस समय केवल एक इंडेक्स लेते हुए वहां से बाहर जाने की कोशिश करते हैं, लेकिन ऐसा लगता है कि अन्य नियम भी हैं:
सरणी पूरी तरह से प्राकृतिक संख्याओं से भरी हुई है।
- यदि आप एक सूचकांक पर खुद को पाते हैं
n
, तो आप सूचकांकarray[n]
को छोड़कर, को छोड़कर: - यदि आप अपने आप को एक इंडेक्स पर पाते हैं
n
जो एक प्रमुख संख्या है, तो आपarray[n]
कदम वापस लेते हैं
उदाहरण: आप 4
इस सरणी में सूचकांक पर शुरू करते हैं (प्रारंभ सूचकांक 0 है):
array = [1,4,5,6,8,10,14,15,2,2,4,5,7];
-----------------^ you are here
आप जिस क्षेत्र पर हैं 8
, उसके मूल्य के रूप में , आप 8
पहले चरण के रूप में सूचकांक में जाते हैं। आप जिस क्षेत्र पर उतरते हैं, उसमें मान होता है 2
। फिर आप 2
अपने दूसरे चरण के रूप में इंडेक्स पर जाते हैं । जैसा 2
कि एक प्रमुख संख्या है, आप 5 कदम पीछे ले जाते हैं, जो कि आपका तीसरा चरण है। जैसा कि कोई सूचकांक नहीं है -3
, आप कुल 3 चरणों में सरणी से सफलतापूर्वक बच गए।
आपका कार्य है:
एक प्रोग्राम या फ़ंक्शन लिखने के लिए, जो एक सरणी और स्टार्ट इंडेक्स को पैरामीटर के रूप में स्वीकार करता है, और सरणी से बचने के लिए चरणों की मात्रा को आउटपुट करता है। यदि आप सरणी से नहीं बच सकते (उदाहरण [2,0,2]
के लिए स्टार्ट-इंडेक्स 2
=> आप लगातार इंडेक्स से जाते हैं2
से जाते हैं 0
), तो एक फाल्सी वैल्यू आउटपुट। आप एक-आधारित अनुक्रमण या शून्य-आधारित अनुक्रमण का उपयोग कर सकते हैं, लेकिन कृपया निर्दिष्ट करें कि आप किसका उपयोग करते हैं।
परीक्षण के मामलों
इनपुट: [2,5,6,8,1,2,3], 3
आउटपुट: 1
इनपुट: [2, 0, 2], 2
आउटपुट: false
इनपुट: [14,1,2,5,1,3,51,5,12,3,4,41,15,4,12,243,51,2,14,51,12,11], 5
;
आउटपुट: 6
सबसे छोटा जवाब जीत जाता है।