परिचय
मेरे पास जादू के दर्पणों से भरा एक कमरा है । वे रहस्यमय कलाकृतियां हैं जो किसी भी आइटम को डुप्लिकेट कर सकती हैं, एक और जादू दर्पण को छोड़कर। अधिक स्पष्ट रूप से, आइटम का एक डुप्लिकेट संस्करण दर्पण के दूसरी तरफ, उसी दूरी पर दिखाई देगा। हालांकि, यदि डुप्लिकेट दर्पण और या तो आइटम (मूल या डुप्लिकेट) के बीच, दोनों तरफ के रास्ते में एक और जादू दर्पण है, तो डुप्लिकेट नहीं बनता है। मूल आइटम दर्पण के बाएं या दाएं हो सकते हैं, और दूसरी तरफ डुप्लिकेट दिखाई देगा। इसके अलावा, डुप्लिकेट आइटम को स्वयं दूसरे दर्पण द्वारा डुप्लिकेट किया जा सकता है। आइटम कभी भी अन्य वस्तुओं के दोहराव को अवरुद्ध नहीं करते हैं (सीधे-सीधे डुप्लिकेट होने की स्थिति पर छोड़कर)।
इनपुट
आपका इनपुट वर्णों से युक्त एक तार है .#|
, जो खाली जगह, वस्तुओं और जादू के दर्पण का प्रतिनिधित्व करता है। इनपुट में हमेशा कम से कम एक जादू दर्पण होगा।
उत्पादन
आपका आउटपुट एक और स्ट्रिंग होगा जहां प्रत्येक जादू दर्पण ने ऊपर दिए गए नियमों के अनुसार प्रत्येक आइटम की नकल की हो सकती है। आप मान सकते हैं कि उस जगह पर हमेशा एक खाली जगह होगी जहां एक डुप्लिकेट आइटम दिखाई देता है (इसलिए वे सीमा से बाहर नहीं जाएंगे)।
उदाहरण
इनपुट स्ट्रिंग पर विचार करें
.#.|.....|......#
A B C D
जहां हमने स्पष्टता के लिए कुछ पदों को चिह्नित किया है। दर्पण B
आइटम को डुप्लिकेट करता है A
, जो इसके दाईं ओर समाप्त होता है:
.#.|.#...|......#
A B C D
दर्पण C
तब नए आइटम की नकल करता है:
.#.|.#...|...#..#
A B C D
दर्पण C
आइटम को डुप्लिकेट नहीं कर सकता A
, क्योंकि दर्पण B
रास्ते में है। यह आइटम को डुप्लिकेट भी नहीं कर सकता है D
, क्योंकि दर्पण B
दूसरी तरफ है। इसी तरह, दर्पण B
आइटम को डुप्लिकेट नहीं कर सकता है D
या उसके बगल में डुप्लिकेट नहीं कर सकता है, क्योंकि दर्पण C
रास्ते में है, इसलिए यह सही आउटपुट है।
एक अन्य उदाहरण के लिए, इनपुट पर विचार करें
.##..#...|#..##...|..##....#.
AB C DE FG H IJ K
मिरर D
नकल कर सकते हैं A
और B
सही करने के लिए, और E
और G
के लिए छोड़ दिया।
C
और F
पहले से ही एक दूसरे के डुप्लिकेट हैं। तार बन जाता है
.##.##..#|#..##.##|..##....#.
AB C DE FG H IJ K
मिरर H
नकल कर सकते हैं E
, F
और के डुप्लिकेट A
और B
करने का अधिकार है, और I
बाईं ओर।
G
और J
पहले से ही एक दूसरे के डुप्लिकेट हैं, और दर्पण D
के रास्ते में है K
। अब हमारे पास है
.##.##..#|#..#####|#####..##.
AB C DE FG H IJ K
अंत में, दर्पण बाईं ओर के D
डुप्लिकेट की नकल कर सकता है I
। हम साथ समाप्त करते हैं
.#####..#|#..#####|#####..##.
AB C DE FG H IJ K
नियम और स्कोरिंग
आप एक पूर्ण कार्यक्रम या एक फ़ंक्शन लिख सकते हैं। सबसे कम बाइट गिनती जीतती है। सबमिशन जो रेगेक्स इंजन का उपयोग नहीं करते हैं, जो उन लोगों से अलग से प्रतिस्पर्धा करते हैं, और उन्हें (कोई रेगेक्स) चिह्नित नहीं किया जा सकता है ।
परीक्षण के मामलों
"|" -> "|"
"..|.." -> "..|.."
".#.|..." -> ".#.|.#."
"..#|.#." -> ".##|##."
".#..|....|.." -> ".#..|..#.|.#"
".|..|.#....." -> "#|#.|.#....."
"...|.#...|....#" -> ".##|##...|...##"
"......#|......." -> "......#|#......"
".#.|.....|......#" -> ".#.|.#...|...#..#"
".......|...#.##|...." -> "##.#...|...#.##|##.#"
"...#..||.......#..#...#" -> "...#..||.......#..#...#"
".##|.#....||#||......#|.#" -> ".##|##....||#||.....##|##"
".##..#...|#..##...|..##....#." -> ".#####..#|#..#####|#####..##."
".#|...||...|#...|..##...|#...." -> ".#|#..||.##|##..|..##..#|#..##"
"....#.|...#.|..|.|.....|..#......" -> "..#.#.|.#.#.|.#|#|#.#..|..#.#...."
"..|....|.....#.|.....|...|.#.|..|.|...#......" -> ".#|#...|...#.#.|.#.#.|.#.|.#.|.#|#|#..#......"