एक दूर के राज्य में, एक शतरंज की रानी एक सर्पिल पथ पर एक दैनिक पैदल यात्रा करती है, 1 से लेकर तक की संख्या, सर्पिल n
का पालन करने के लिए परवाह नहीं है, लेकिन बस रानी की चाल बना रही है क्योंकि वह शतरंज की बिसात पर होती है। रानी अपनी प्रजा से प्यारी होती है, और वे उसके रास्ते पर आने वाले हर वर्ग पर ध्यान देती हैं। यह देखते हुए कि रानी किसी भी वर्ग पर अपना चलना शुरू कर सकती है और इसे किसी भी वर्ग पर समाप्त कर सकती है, रानी की सबसे छोटी पैदल यात्रा क्या है जो वह ले सकती है?
चुनौती
एक आयताकार ग्रिड पर पूर्णांक के एक सर्पिल को देखते हुए, एक फ़ंक्शन लिखिए जो एक शतरंज रानी की चाल का उपयोग करके इस सर्पिल ग्रिड पर दो नंबरों के बीच कम से कम संभव पथ (गिने गए कोशिकाओं की संख्या की गणना की गई) में से एक को लौटाता है।
उदाहरण के लिए, से 16
करने के लिए 25
:
25 10 11 12 13
24 9 2 3 14
23 8 1 4 15
22 7 6 5 16
21 20 19 18 17
कुछ संभावित रास्तों में शामिल हैं 16, 4, 2, 10, 25
और 16, 5, 1, 9, 25
।
नियम
- इनपुट कोई भी दो धनात्मक पूर्णांक होगा।
- आउटपुट केवल ओर्थोगोनल और विकर्ण चालों का उपयोग करके सर्पिल में पूर्णांक (दोनों समापन बिंदुओं सहित) का एक मार्ग होगा।
- एक पथ की लंबाई यात्रा की गई कोशिकाओं की संख्या से गिना जाता है।
- आपका जवाब एक कार्यक्रम या एक समारोह हो सकता है।
- यह कोड गोल्फ है, इसलिए सबसे छोटी संख्या बाइट्स जीतती है।
हमेशा की तरह, अगर समस्या स्पष्ट नहीं है, तो कृपया मुझे बताएं। गुड लक और गुड गोल्फिंग!
परीक्षण के मामलों
>>> queen_spiral(4, 5)
4, 5
>>> queen_spiral(13, 20)
13, 3, 1, 7, 20
>>> queen_spiral(14, 14)
14
>>> queen_spiral(10, 3)
10, 11, 3
>>> queen_spiral(16, 25)
16, 4, 2, 10, 25
>>> queen_spiral(80, 1)
80, 48, 24, 8, 1