मान लीजिए हमारे पास दो मान r और c हैं। यदि एक शतरंज के शूरवीर को एक असीम रूप से बड़े शतरंज बोर्ड में शुरुआत में निर्देशांक (0, 0) पर रखा जाता है, तो हमें स्थान (आर, सी) तक पहुंचने के लिए न्यूनतम चालों की संख्या का पता लगाना होगा। शूरवीर शतरंज के समान गतिमान शैली का अनुसरण करेगा। यह क्षैतिज रूप से दो वर्ग दूर और एक वर्ग लंबवत, या दो वर्ग लंबवत और एक वर्ग क्षैतिज रूप से चलता है।
इसलिए, यदि इनपुट r =6, c =1 जैसा है, तो आउटपुट 3 होगा, लाल प्रारंभिक स्थिति है, हरा अंतिम है और पीला मध्यवर्ती चरण है।
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
- यदि आर <सी, तो
- आर और सी स्वैप करें
- अगर (आर, सी) (1, 0) के समान है, तो
- वापस 3
- अगर (आर, सी) (2, 2) के समान है, तो
- वापस 4
- डेल्टा:=r - c
- अगर c> डेल्टा, तो
- रिटर्न डेल्टा - 2 *((डेल्टा - c) / 3) का भागफल
- अन्यथा,
- रिटर्न डेल्टा - 2 *((डेल्टा - c) / 4) का भागफल
आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -
उदाहरण
class Solution: def solve(self, r, c): if r < c: r, c = c, r if (r, c) == (1, 0): return 3 if (r, c) == (2, 2): return 4 delta = r - c if c > delta: return delta - 2 * ((delta - c) // 3) else: return delta - 2 * ((delta - c) // 4) ob = Solution() r = 6 c = 1 print(ob.solve(r, c))
इनपुट
6, 1
आउटपुट
3