इस चुनौती में, आपको दो ओवरलैपिंग आयताकार दिए जाते हैं, और आपको एक से दूसरे को हटाकर बनाई गई आयतों की गणना करने की आवश्यकता होती है।
उदाहरण के लिए, यदि आप काले रंग से लाल आयत को हटाते हैं:
आप निम्नलिखित दो आयत सेटों में से एक को समाप्त करते हैं:
आपको निम्नलिखित को भी संभालना होगा:
अधिक स्पष्ट होना:
- आप दो आयतों, ए और बी के निर्देशांक को इनपुट करेंगे।
- आपको कुछ गैर-अतिव्यापी आयतों को आउटपुट करने की आवश्यकता है जो ए के सभी क्षेत्रों को बी के बिना कवर करते हैं। किसी भी संभावित कवर की अनुमति है
- आयताकार निर्देशांक 4 पूर्णांक के रूप में पारित किए जाते हैं। आप उन्हें दो जोड़े (दो कोने के बिंदुओं का प्रतिनिधित्व) में, या 4 पूर्णांक की एक ट्यूपल / सूची के रूप में पास कर सकते हैं। आपके इनपुट और आउटपुट को लगातार होना चाहिए।
- ए और बी जरूरी ओवरलैप या स्पर्श नहीं करेंगे, और प्रत्येक में कम से कम 1 का क्षेत्र होगा
परीक्षण के मामलों:
[(0 0) (5 5)] [(3 4) (8 7)] -> [(0 0) (5 4)] [(0 4) (3 5)] # or [(0 0) (3 5)] [(3 0) (5 4)]
[(2 4) (10 11)] [(5 5) (6 6)] -> [(2 4) (10 5)] [(2 5) (5 6)] [(6 5) (10 6)] [(2 6) (10 11)] #Other sets of 4 rectangles are possible
[(3 3) (8 8)] [(0 1) (10 8)] -> #No rectangles should be output
[(0 0) (5 5)] [(1 1) (10 2)] -> [(0 0) (1 5)] [(1 0) (2 1)] [(2 0) (5 5)] #Other sets of 3 rectangles are possible
[(1 5) (7 8)] [(0 0) (1 10)] -> [(1 5) (7 8)] #Only possible output
[(4 1) (10 9)] [(2 5) (20 7)] -> [(4 1) (10 5)] [(4 7) (10 9)] #Only possible output
[(1 1) (8 8)] [(0 6) (9 9)] -> [(1 1) (8 6)] #Only possible output
यह एक कोड-गोल्फ है , इसलिए अपने कोड को यथासंभव छोटा बनाएं!
{(x1, y1), (x2, y2)}
होल्ड है x1 < x2
और y1 < y2
?