मान लीजिए हमें n आकार का एक वर्ग दिया गया है। n आकार का वर्ग आगे n² छोटे वर्गों में विभाजित है। छोटे वर्ग इकाई आकार के हैं और उनमें से एक वर्ग एक अद्वितीय रंग से रंगा गया है।
अब अगर हम बड़े वर्ग को दो बराबर भागों में काटते हैं, तो हमें इस तरह काटना होगा कि काटने वाली रेखा का उस विशिष्ट रंगीन छोटे वर्ग के साथ कोई बिंदु साझा न हो। हमें इस तथ्य पर भी विचार करना होगा कि नए कटे हुए दो टुकड़े एक-दूसरे के दर्पण चित्र हैं। तो, हमें दिए गए शर्तों के अनुसार इस तरह से वर्ग काटना संभव है या नहीं यह पता लगाना है। हमारे पास n का मान और बड़े वर्ग में रंगीन वर्ग की स्थिति है।
उदाहरण के लिए, यदि size = 50, colored_row_pos = 25, colored_col_pos = 25 है, तो आउटपुट "Cutting is not possible." होगा।
हल करने का तरीका
- middle := size // 2 का फ्लोर मान
- यदि (middle == colored_row_pos या middle == colored_row_pos - 1) और (middle == colored_col_pos या middle == colored_col_pos - 1), तो False लौटाएं
- अन्यथा True लौटाएं
रंगीन सेल ठीक केंद्र में नहीं होना चाहिए जहां काटने की रेखा गुजरती है।
उदाहरण
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