पृष्ठभूमि
मैं एक बाड़ का निर्माण करना चाहता हूं। उसके लिए, मैंने डंडों का एक समूह इकट्ठा किया है, और उन्हें जमीन पर चिपका दिया है। मैंने बहुत सारे बोर्ड भी एकत्र किए हैं जिन्हें मैं वास्तविक बाड़ बनाने के लिए खंभे पर रखूंगा। सामान बनाते समय मैं दूर हो जाता हूं, और सबसे अधिक संभावना है कि मैं बस बोर्ड को खंभे से बांध दूंगा जब तक कि उन्हें लगाने के लिए कोई और जगह न हो। मैं चाहता हूं कि आप उन संभावित बाड़ को हटा दें जिन्हें मैं समाप्त कर सकता हूं।
इनपुट
आपका इनपुट किसी भी सुविधाजनक प्रारूप में डंडे की स्थिति का प्रतिनिधित्व करने वाले दो आयामी पूर्णांक निर्देशांक की एक सूची है। आप यह मान सकते हैं कि इसमें कोई डुप्लिकेट नहीं है, लेकिन आप इसके आदेश के बारे में कुछ भी नहीं मान सकते हैं।
ध्रुवों के बीच सीधी रेखाओं द्वारा बोर्ड का प्रतिनिधित्व किया जाता है, और सरलता के लिए, हम केवल क्षैतिज और ऊर्ध्वाधर बोर्डों पर विचार करते हैं। दो ध्रुवों को एक बोर्ड द्वारा जोड़ा जा सकता है यदि उनके बीच कोई अन्य खंभे या बोर्ड नहीं हैं, जिसका अर्थ है कि बोर्ड एक दूसरे को पार नहीं कर सकते हैं। ध्रुवों और बोर्डों की व्यवस्था अधिकतम होती है यदि इसमें कोई नया बोर्ड नहीं जोड़ा जा सकता है (समकक्ष, किसी भी दो क्षैतिज या लंबवत संरेखित ध्रुवों के बीच एक पोल या बोर्ड है)।
उत्पादन
आपका आउटपुट अधिकतम व्यवस्थाओं की संख्या है जो कि ध्रुवों का उपयोग करके बनाई जा सकती हैं।
उदाहरण
इनपुट सूची पर विचार करें
[(3,0),(1,1),(0,2),(-1,1),(-2,0),(-1,-1),(0,-2),(1,-1)]
ऊपर से देखने पर पोल की इसी व्यवस्था कुछ इस तरह दिखती है:
o
o o
o o
o o
o
इन ध्रुवों का उपयोग करके बनाई जा सकने वाली तीन अधिकतम व्यवस्थाएँ हैं:
o o o
o-o o|o o-o
o----o o||| o o| | o
o-o o|o o-o
o o o
इस प्रकार सही उत्पादन होता है 3
।
नियम
आप एक फ़ंक्शन या पूर्ण प्रोग्राम लिख सकते हैं। सबसे कम बाइट गिनती जीतता है, और मानक खामियों को रोक दिया जाता है।
परीक्षण के मामलों
[] -> 1
[(0,0),(1,1),(2,2)] -> 1
[(0,0),(1,0),(2,0)] -> 1
[(0,0),(0,1),(1,0),(1,1)] -> 1
[(1,0),(0,1),(-1,0),(0,-1)] -> 2
[(3,0),(1,1),(0,2),(-1,1),(-2,0),(-1,-1),(0,-2),(1,-1)] -> 3
[(0,0),(4,0),(1,1),(1,-2),(3,1),(3,-2),(2,-1),(4,-1)] -> 3
[(0,0),(4,0),(1,1),(1,-2),(3,1),(3,-2),(2,-1),(4,-1),(0,-1)] -> 4
[(0,0),(4,0),(1,1),(1,-2),(3,1),(3,-2),(2,-1),(0,-1),(2,2)] -> 5
[(0,0),(4,0),(1,1),(1,-2),(3,1),(3,-2),(2,-1),(4,-1),(0,-1),(2,2)] -> 8
(0,-2)
, अच्छी पकड़। अब बदल रहा है।