मान लीजिए कि रिक्त स्थान का यह ग्रिड X
कुछ अजीब आकार के खाली आइस क्यूब ट्रे के क्रॉस सेक्शन का प्रतिनिधित्व करता है :
X X X
X X X XX X XX X
XXXXXX XXXXXXXXXXXXX
बिना X
ट्रे में छेद या अंतराल का प्रतिनिधित्व करने वाले कॉलम पानी को पकड़ नहीं सकते हैं, जो एक असीम क्षमता के सिंक में निकल जाता है। ग्रिड के सबसे बाएं या दाएं किनारे से गिरने वाला पानी इस अंतहीन सिंक में भी चला जाता है।
अगर हम ट्रे के ऊपर नल लगाते और उन्हें पानी से भर देते, जब तक कि सभी डिब्बों में पानी का स्तर स्थिर नहीं रहता, तब तक भरे जाने वाले सटीक डिब्बों पर निर्भर करता कि पानी की धारा ट्रे के ऊपर स्थित थी या नहीं। (बिना छींटे के साथ पानी की एक पतली, स्थिर धारा मान लें।)
उदाहरण के लिए, यदि हमारा नल F
बहुत बाएं ग्रिड कॉलम से ऊपर था
F
X X X
X X X XX X XX X
XXXXXX XXXXXXXXXXXXX
पानी X
उस स्तंभ में सबसे ऊपर गिर जाएगा और बाएं और दाएं, बाएं आधा शिलिंग नीचे सिंक में फैल जाएगा, और दायां आधा 2 × 1 डिब्बे को भर देगा। एक बार जब डिब्बे भर जाता है, तो पानी की धारा का दाहिना आधा भाग कहीं नहीं होता है, लेकिन सिंक में और पानी का स्तर हर जगह अनिवार्य रूप से स्थिर होता है।
नल को बंद करते हुए, ट्रे अब इस तरह दिखता है: ( ~
पानी के साथ )
X X X
X~~X X XX X XX X
XXXXXX XXXXXXXXXXXXX
इसी तरह, अगर हम नल को इस तरह से रखते हैं:
F
X X X
X X X XX X XX X
XXXXXX XXXXXXXXXXXXX
यह दो बचे हुए डिब्बों को भर देगा लेकिन बाकी का पानी निकल जाएगा:
X X X
X~~X~X XX X XX X
XXXXXX XXXXXXXXXXXXX
यदि हम नल को इस तरह रखते हैं:
F
X X X
X X X XX X XX X
XXXXXX XXXXXXXXXXXXX
धारा का बायां आधा हिस्सा सिंक में बह जाएगा लेकिन दाहिना आधा अंत में तीन सबसे दाहिने डिब्बों को भर देगा क्योंकि पानी की समतल सतह पर क्षैतिज रूप से कितनी दूर तक यात्रा की जा सकती है, इसकी कोई सीमा नहीं है:
X X~X
X X X XX~X~~XX~~~X
XXXXXX XXXXXXXXXXXXX
हालांकि इस तरह से स्थिति:
F
X X X
X X X XX X XX X
XXXXXX XXXXXXXXXXXXX
सभी नालियों का पानी दूर चला जाता है और कोई भी भराव नहीं होता है:
X X X
X X X XX X XX X
XXXXXX XXXXXXXXXXXXX
चुनौती
एक प्रोग्राम या फ़ंक्शन लिखें जो रिक्त स्थान के आयताकार ग्रिड में लेता है X
, और एक है F
। शीर्ष पंक्ति में हमेशा स्थान होगा F
और अन्यथा केवल रिक्त स्थान होंगे। X
प्रत्येक स्तंभ में है (यदि कोई हो तो) ग्रिड के आधार से एक ठोस लाइन अप में विस्तार होगा, यानी कोई गुफाओं या overhangs हो जाएगा।
नल F
को भरने के बाद ग्रिड को प्रिंट या वापस करें जो ~
ऊपर वर्णित के अनुसार पानी के साथ हो सकता है। F
आउटपुट से शीर्ष पंक्ति छोड़ें ।
नल पंक्ति से अलग ग्रिड न्यूनतम 1 × 1 होगा
F X
सबसे छोटा इनपुट है जिसे आपको समर्थन करने की आवश्यकता है।
इनपुट पूर्ण पाठ आयत के रूप में आएगा। प्रमुख और अनुगामी रिक्त स्थान इनपुट और आउटपुट में मायने रखते हैं। जैसे इनपुट
F X X XXXX
में परिणाम होना चाहिए
X~~X XXXX
(प्रमुख और अनुगामी स्थानों पर ध्यान दें)
इनपुट या आउटपुट में एकल अनुगामी न्यूलाइन होना ठीक है।
आप किसी भी चार अलग उपयोग कर सकते हैं प्रिंट योग्य ASCII स्पेस के स्थान पर अक्षर, ,
X
, ।F
~
बाइट्स में सबसे छोटा कोड जीतता है।
बड़ा उदाहरण:
इनपुट:
F
X X
X X X
X XXX X X X X X
X X XXXXXXX X XXX XXXXXXX X X
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXX
आउटपुट:
X~~~~~~~~~~~~~X
X~~~~~~~~~~~~~X~X
X~~~~~~~~~~~~XXX~~~~~~~X~~~~X~X~~~~~~~~~~~X X
X~~~X~~~~~XXXXXXX~~~~~~X~~~~XXX~~~~~XXXXXXX X X
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXX
zip()
<3