परिचय
मेरे पास बहुत सारे ASCII चट्टान हैं। वे डैश, पाइप, Vs, कैरेट, एंगल ब्रैकेट, स्लैश और स्पेस के साथ बनाए गए हैं। उदाहरण:
/--\
| |
| |
\--/
मैं उन्हें इस तरह से मिटाना चाहता हूं:
/\
/ \
\ /
\/
सभी कोने गोल हो गए हैं। एक और अधिक जटिल उदाहरण:
/----\
| \------\
| |
| |
\------------/
/--\
/ \------\
| \
\ /
\----------/
एक और कटाव के बाद, यह बन जाएगा
/\
/ \------\
< \
\ /
\--------/
और दुसरी:
/\------\
< \
\ /
\------/
चुनौती
आपकी चुनौती एक ऐसे प्रोग्राम को लिखना है जो एक बार इनपुट को मिटा सके। आप मान सकते हैं कि केवल एक चट्टान है और आप मान सकते हैं कि यह एक बंद लूप है। इनपुट में केवल वर्ण /\ -| <> ^V \nहोंगे और आयत बनाने के लिए अनुगामी स्थान होंगे। कार्यक्रम या तो STDIN से इनपुट प्राप्त कर सकता है और STDOUT को आउटपुट या एक फ़ंक्शन हो सकता है। प्रत्येक पंक्ति के अंत में एक नया अक्षर है। कटाव नीचे उल्लिखित नियमों का पालन करना चाहिए (ध्यान दें: उदाहरणों में चट्टान पूरी नहीं हुई है, यह स्पष्टीकरण में आसानी के लिए है)। आउटपुट इनपुट के समान प्रारूप में होना चाहिए, इनपुट के समान आकार के साथ। हालांकि, अनुगामी रिक्त स्थान छोड़ा जा सकता है।
स्लैश पाइपलाइनों और डैश में फैल जाएगा और पार हो जाएगा।
/---
|
|
/--
/
|
/-
/
/
यदि दो स्लैश एक साथ विलय होते हैं, तो उपयुक्त वर्ण <>^Vका उपयोग किया जाता है।
/-----\
| |
| |
| |
\-----/
/---\
/ \
| |
\ /
\---/
/-\
/ \
< >
\ /
\-/
^
/ \
< >
\ /
V
यदि चट्टान का एक हिस्सा विलीन हो सकता है, तो यह होगा। नोट: यदि एक भाग विलय कर सकता है, लेकिन /\दूसरा ( उदाहरण के दूसरी पंक्ति में) नहीं हो सकता है, तो वह जो विलय कर सकता है (उदाहरण देखें)।
/\
/\-^-/\-/ \--
|
<
|
/
\
|
/
/
\
\
|
|
/-------/\--
/
|
|
|
|
|
|
/
\
|
|
|
आखिरकार, सभी चट्टानें कुछ भी नहीं बन जाएंगी।
<> ^ /\
V \/
परीक्षण के मामलों
टेस्ट 1:
/----\
| \------\
| |
| |
\------------/
/--\
/ \------\
| \
\ /
\----------/
/\
/ \------\
< \
\ /
\--------/
/\------\
< \
\ /
\------/
/-----\
< \
\ /
\----/
/---\
< \
\ /
\--/
/-\
< \
\ /
\/
^
< \
\/
टेस्ट 2:
/----\
| |
| |
| |
| |
\----/
/--\
/ \
| |
| |
\ /
\--/
/\
/ \
/ \
\ /
\ /
\/
/\
/ \
\ /
\/
/\
\/
टेस्ट 3:
^ /\
/\--/\--/ \--/ \-\
\ |
| |
/ |
\ |
| |
| |
/ |
< |
\ |
| |
| |
/ |
/ |
\ |
\-----------------/
/-------^----/\-\
/ \
| |
| |
| |
| |
| |
| |
< |
| |
| |
| |
| |
/ |
\ /
\---------------/
/-------------\
/ \
/ \
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
\ /
\ /
\-------------/
/-----------\
/ \
/ \
/ \
| |
| |
| |
| |
| |
| |
| |
| |
\ /
\ /
\ /
\-----------/
/---------\
/ \
/ \
/ \
/ \
| |
| |
| |
| |
| |
| |
\ /
\ /
\ /
\ /
\---------/
/-------\
/ \
/ \
/ \
/ \
/ \
| |
| |
| |
| |
\ /
\ /
\ /
\ /
\ /
\-------/
/-----\
/ \
/ \
/ \
/ \
/ \
/ \
| |
| |
\ /
\ /
\ /
\ /
\ /
\ /
\-----/
/---\
/ \
/ \
/ \
/ \
/ \
/ \
/ \
\ /
\ /
\ /
\ /
\ /
\ /
\ /
\---/
/-\
/ \
/ \
/ \
/ \
/ \
/ \
/ \
\ /
\ /
\ /
\ /
\ /
\ /
\ /
\-/
^
/ \
/ \
/ \
/ \
/ \
/ \
/ \
\ /
\ /
\ /
\ /
\ /
\ /
\ /
V
^
/ \
/ \
/ \
/ \
/ \
/ \
\ /
\ /
\ /
\ /
\ /
\ /
V
^
/ \
/ \
/ \
/ \
/ \
\ /
\ /
\ /
\ /
\ /
V
^
/ \
/ \
/ \
/ \
\ /
\ /
\ /
\ /
V
^
/ \
/ \
/ \
\ /
\ /
\ /
V
^
/ \
/ \
\ /
\ /
V
^
/ \
\ /
V
^
V
स्कोरिंग
यह कोड-गोल्फ है , इसलिए सबसे कम संख्या में बाइट्स जीतने वाला कार्यक्रम!
मानक खामियों की अनुमति नहीं है।
"\x20\x20\x20\x20\x20\x20/\\\n/-\\\x20\x20/\x20\x20\\-\\\n|\x20\x20\\/\x20\x20\x20\x20\x20|\n\\---------/\n"