पृष्ठभूमि
संयुक्त राज्य अमेरिका के पास एक अनोखा प्रेम है- कुछ मतदान परिणामों की भविष्यवाणी करने के लिए एक चुनावी जिले का जानबूझकर किया गया हेरफेर। अभी हाल ही में सुप्रीम कोर्ट के सामने एक गेरमैंडरिंग केस आया था । गैरमांडरिंग, विशेषकर जब नस्ल से संबंधित होता है, अवैध रूप से शासित होता है और परिणामस्वरूप जिला लाइनों को फिर से तैयार करने की आवश्यकता होती है।
एक नगर पालिका (2d सरणी) के एक आयताकार नक्शे को देखते हुए, आप अपनी पार्टी को सबसे अधिक प्रतिनिधित्व पाने में मदद करने के लिए जिला रेखा खींचेंगे। यही है, आप शांत होंगे। हर नगरपालिका में दो पक्ष होते हैं, 0
और 1
। नक्शा 0
या तो 1
उन पर या उनके साथ वर्गों में शामिल होगा । यहाँ एक उदाहरण का नक्शा है:
चुनौती
आप नक्शे को जिलों में समूहित करेंगे ताकि 1
पार्टी को इनपुट द्वारा निर्दिष्ट जिलों की संख्या कम से कम मिले।
इनपुट
इनपुट में एक नक्शा, आकर्षित करने के लिए जिलों की संख्या और 1
पार्टी को जीतने के लिए आवश्यक न्यूनतम जिलों की संख्या (न्यूनतम स्कोर) शामिल होगी।
उत्पादन
आउटपुट जिलों का नक्शा होगा। प्रत्येक जिले में वर्णमाला के बड़े अक्षरों में विशिष्ट रूप से शामिल किया जाएगा। हां, इसका मतलब यह है कि 26 से अधिक जिले नहीं होंगे।
यदि कोई संभावित आउटपुट नहीं है जहां इनपुट पार्टी पर्याप्त जिलों को जीतती है, तो:
- प्रिंट "हमने कोशिश की ..."
- पूरी तरह से त्रुटि क्योंकि पार्टी चुनाव परिणामों से अपूरणीय रूप से घायल हो गई थी
- अथवा दोनों
नियम (बहुत महत्वपूर्ण भी)
- सभी जिलों को सन्निहित होना चाहिए
- जिलों में अन्य जिले नहीं हो सकते हैं
- प्रत्येक जिले में कम से कम चार नोड्स होने चाहिए। इनपुट नियमों के अनुरूप होगा, जिसका अर्थ है कि
number_of_districts * 4
नक्शे में कम से कम नोड होंगे - प्रत्येक पार्टी का स्कोर उन जिलों की संख्या है, जिनमें उसका बहुमत है
- यदि किसी जिले में समान संख्या में
0
s और1
s है, तो न तो पार्टी को इससे कोई लाभ होता है - सामान्य नो-चीटिंग के नियम
- यह कोड-गोल्फ है , इसलिए बाइट्स जीत में सबसे छोटा कोड है।
परीक्षण के मामलों
1. Input 1. Output 2. Input 2. Output 3. Input 3. Output
districts: 5 Image and map districts: 3 Image below districts: 3 fatal error
min wins: 3 min wins: 3 min wins: 3
map: map: map:
00000110000 AAAAAAAAAAA 101101 101101
10000010000 AAAAAAAAAAA 100000 100000
10010000011 AAAAAAAAAAA 011011 011011
11001110000 BBBBBBBAAAA 111111 100111
00111111000 BBBBBBBAAAA
01111111000 CCCCCDDDAAA
01111111001 CCCCCDDDAAA
01000111100 EEEEEDDDDDD
00000001000 EEEEEDDDDDD
बेशक, आपका कार्यक्रम किसी भी वैध परीक्षण मामले के लिए काम करना चाहिए , न कि केवल इन लोगों के लिए।