यह द्वीप गोल्फ चुनौतियों की एक श्रृंखला में पहला है। अगली चुनौती
ASCII- कला में एक द्वीप को देखते हुए, इसे परिचालित करने के लिए एक इष्टतम पथ का उत्पादन।
इनपुट
आपका इनपुट एक आयताकार ग्रिड होगा जिसमें दो वर्ण होंगे, जो भूमि और पानी का प्रतिनिधित्व करेंगे। नीचे दिए गए उदाहरणों में, भूमि है #
और पानी है .
, लेकिन आप अपनी इच्छानुसार किसी भी दो अलग-अलग पात्रों को स्थानापन्न कर सकते हैं।
...........
...##......
..#####....
..#######..
.#########.
...#######.
...#####.#.
....####...
...........
हमेशा कम से कम एक भूमि टाइल होगी। भूमि की टाइलें सभी सन्निहित होंगी (यानी केवल एक द्वीप है)। पानी की टाइलें भी सन्निहित होंगी (यानी झीलें नहीं हैं)। ग्रिड की बाहरी सीमा सभी में पानी की टाइलें होंगी। जमीन की टाइलें तिरछे नहीं जुड़ी होंगी : यानी, आपको कभी ऐसा कुछ दिखाई नहीं देगा
....
.#..
..#.
....
उत्पादन
आपके कोड को उसी ग्रिड को आउटपुट करना होगा, जिस पर कम से कम सर्कुलेशन हो। नीचे दिए गए उदाहरणों में, परिच्छेद पथ के साथ खींचा गया है o
, लेकिन आप किसी भी वर्ण को तब तक स्थानापन्न कर सकते हैं जब तक कि वह आपकी भूमि और जल के पात्रों से अलग हो।
एक परिच्छेद एक साधारण बंद वक्र है, जो पूरी तरह से पानी की टाइलों पर खींचा गया है, जो ग्रिड पर सभी भूमि टाइलों को पूरी तरह से घेरता है। विकर्ण कनेक्शन की अनुमति है। उदाहरण के लिए, यह उपर्युक्त द्वीप का एक परिमाण है (लेकिन सबसे छोटा नहीं):
.ooooo.....
o..##.oo...
o.#####.o..
o.#######o.
o#########o
ooo#######o
..o#####.#o
..oo####..o
....oooooo.
एक परिच्छेद की लंबाई की गणना निम्नानुसार की जाती है: पथ पर आसन्न टाइल्स के प्रत्येक जोड़े के लिए, यदि वे क्षैतिज या लंबवत रूप से जुड़े हुए हैं, तो 1 जोड़ें; यदि वे तिरछे जुड़े हुए हैं, तो are2 जोड़ें। उपरोक्त पथ की लंबाई 22 + 7√2 (path 31.9) है।
कम से कम संभव लंबाई के साथ एक सबसे बड़ा परिचालित दायित्व है। आपके कार्यक्रम को किसी भी एक पथ का उत्पादन करना चाहिए जो इस स्थिति को संतुष्ट करता है। अधिकांश द्वीपों के लिए, कई संभावित समाधान होंगे। यहाँ उपरोक्त द्वीप के लिए एक समाधान है, जिसकी लंबाई 10 + 13 (2 () 28.4) है:
...oo......
..o##oo....
.o#####oo..
.o#######o.
o#########o
.o.#######o
..o#####.#o
...o####.o.
....ooooo..
विवरण
आपका समाधान एक पूर्ण कार्यक्रम या फ़ंक्शन हो सकता है । का कोई भी डिफ़ॉल्ट इनपुट और आउटपुट तरीकों स्वीकार्य हैं।
आपका इनपुट और आउटपुट मल्टीलाइन स्ट्रिंग या स्ट्रिंग्स की सूची हो सकता है। यदि आपकी भाषा एकल-वर्ण स्ट्रिंग्स से भिन्न वर्ण प्रकार की है, तो आप पिछले वाक्य में "स्ट्रिंग" के लिए "वर्णों की सूची" स्थानापन्न कर सकते हैं। यदि आपकी भाषा को ग्रिड की ऊंचाई और / या चौड़ाई का इनपुट करने की आवश्यकता है, तो आप ऐसा कर सकते हैं। आपके आउटपुट (वैकल्पिक रूप से) में एक एकल अनुगामी न्यूलाइन हो सकती है। जैसा कि ऊपर उल्लेख किया गया है, आप के स्थान पर किसी भी तीन अलग-अलग वर्णों का उपयोग कर सकते हैं #.o
(कृपया अपनी प्रविष्टि में निर्दिष्ट करें कि आप किन वर्णों का उपयोग कर रहे हैं)।
परीक्षण के मामलों
ए अद्वितीय कम से कम circumnavigations साथ आइलैंड्स:
...
.#.
...
.o.
o#o
.o.
......
.####.
......
.oooo.
o####o
.oooo.
......
......
..##..
...#..
......
......
......
..oo..
.o##o.
..o#o.
...o..
......
.......
.#####.
...#...
...#...
.#####.
.......
.ooooo.
o#####o
o..#..o
o..#..o
o#####o
.ooooo.
.......
...#...
...#...
.#####.
...#...
...#...
.......
...o...
..o#o..
.o.#.o.
o#####o
.o.#.o.
..o#o..
...o...
.......
.#####.
.##..#.
..#..#.
.......
.ooooo.
o#####o
o##..#o
.o#..#o
..oooo.
बी कई संभावित समाधान के साथ एक द्वीप का उदाहरण:
........
....##..
...####.
..###...
.#####..
.#####..
..##....
........
संभव आउटपुट:
....oo..
...o##o.
..o####o
.o###.o.
o#####o.
o#####o.
.o##oo..
..oo....
....oo..
...o##o.
..o####o
.o###.o.
o#####o.
o#####o.
.o##.o..
..ooo...
....oo..
...o##o.
..o####o
.o###..o
o#####.o
o#####o.
.o##oo..
..oo....
....oo..
...o##o.
..o####o
.o###..o
o#####.o
o#####o.
.o##.o..
..ooo...
सी। बड़े परीक्षण का मामला एक जिस्ट के रूप में
यह कोड-गोल्फ है : प्रत्येक भाषा में सबसे छोटा कोड जीतता है।