मान लीजिए, हमें एक वर्ग दिया गया है जिसका आकार n है। n आकार के वर्ग को आगे n2 छोटे वर्गों में विभाजित किया गया है। छोटे वर्ग इकाई आकार के होते हैं और उनमें से एक वर्ग अद्वितीय रंग से रंगा जाता है।
अब अगर हम बड़े वर्ग को दो बराबर भागों में काटते हैं, तो हमें इसे इस तरह से काटना होगा कि काटने की रेखा में उस विशिष्ट रंग के छोटे वर्ग के साथ कोई बिंदु समान न हो। हमें इस तथ्य पर भी विचार करना होगा कि नए कटे हुए दो टुकड़े एक दूसरे के दर्पण चित्र हैं। इसलिए, हमें यह पता लगाना होगा कि क्या शर्तों को देखते हुए इस तरह का वर्ग काटना संभव है। हमारे पास n का मान है और बड़े वर्ग में रंगीन वर्ग की स्थिति है।
इसलिए, यदि इनपुट आकार =50, color_row_pos =25, coloured_col_pos =25 जैसा है, तो आउटपुट "काटना संभव नहीं है।"
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
- मध्य :=आकार का न्यूनतम मान /2
- अगर (बीच में कलर्ड_रो_पॉज़ जैसा है या बीच में कलर_रो_पोज़ -1 जैसा है) और (बीच में कलर_कोल_पोज़ जैसा है या बीच में कलर_कॉल_पोज़ -1 जैसा है), तो
- झूठी वापसी
- अन्यथा,
- सही लौटें
आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -
उदाहरण
def solve(size, colored_row_pos, colored_col_pos) : middle = size // 2 if (middle == colored_row_pos or middle == colored_row_pos - 1) and (middle == colored_col_pos or middle == colored_col_pos - 1) : print("Cutting is not possible") else : print("Cutting is possible") size = 50 colored_row_pos, colored_col_pos = 25, 25 solve(size, colored_row_pos, colored_col_pos)
इनपुट
50, 25, 25
आउटपुट
Cutting is not possible