परिचय
मेरे पास जादू के दर्पणों से भरा एक कमरा है । वे रहस्यमय कलाकृतियां हैं जो किसी भी आइटम को डुप्लिकेट कर सकती हैं, एक और जादू दर्पण को छोड़कर। अधिक स्पष्ट रूप से, आइटम का एक डुप्लिकेट संस्करण दर्पण के दूसरी तरफ, उसी दूरी पर दिखाई देगा। हालांकि, यदि डुप्लिकेट दर्पण और या तो आइटम (मूल या डुप्लिकेट) के बीच, दोनों तरफ के रास्ते में एक और जादू दर्पण है, तो डुप्लिकेट नहीं बनता है। मूल आइटम दर्पण के बाएं या दाएं हो सकते हैं, और दूसरी तरफ डुप्लिकेट दिखाई देगा। इसके अलावा, डुप्लिकेट आइटम को स्वयं दूसरे दर्पण द्वारा डुप्लिकेट किया जा सकता है। आइटम कभी भी अन्य वस्तुओं के दोहराव को अवरुद्ध नहीं करते हैं (सीधे-सीधे डुप्लिकेट होने की स्थिति पर छोड़कर)।
इनपुट
आपका इनपुट वर्णों से युक्त एक तार है .#|, जो खाली जगह, वस्तुओं और जादू के दर्पण का प्रतिनिधित्व करता है। इनपुट में हमेशा कम से कम एक जादू दर्पण होगा।
उत्पादन
आपका आउटपुट एक और स्ट्रिंग होगा जहां प्रत्येक जादू दर्पण ने ऊपर दिए गए नियमों के अनुसार प्रत्येक आइटम की नकल की हो सकती है। आप मान सकते हैं कि उस जगह पर हमेशा एक खाली जगह होगी जहां एक डुप्लिकेट आइटम दिखाई देता है (इसलिए वे सीमा से बाहर नहीं जाएंगे)।
उदाहरण
इनपुट स्ट्रिंग पर विचार करें
.#.|.....|......#
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
नियम और स्कोरिंग
आप एक पूर्ण कार्यक्रम या एक फ़ंक्शन लिख सकते हैं। सबसे कम बाइट गिनती जीतती है। सबमिशन जो रेगेक्स इंजन का उपयोग नहीं करते हैं, जो उन लोगों से अलग से प्रतिस्पर्धा करते हैं, और उन्हें (कोई रेगेक्स) चिह्नित नहीं किया जा सकता है ।
परीक्षण के मामलों
"|" -> "|"
"..|.." -> "..|.."
".#.|..." -> ".#.|.#."
"..#|.#." -> ".##|##."
".#..|....|.." -> ".#..|..#.|.#"
".|..|.#....." -> "#|#.|.#....."
"...|.#...|....#" -> ".##|##...|...##"
"......#|......." -> "......#|#......"
".#.|.....|......#" -> ".#.|.#...|...#..#"
".......|...#.##|...." -> "##.#...|...#.##|##.#"
"...#..||.......#..#...#" -> "...#..||.......#..#...#"
".##|.#....||#||......#|.#" -> ".##|##....||#||.....##|##"
".##..#...|#..##...|..##....#." -> ".#####..#|#..#####|#####..##."
".#|...||...|#...|..##...|#...." -> ".#|#..||.##|##..|..##..#|#..##"
"....#.|...#.|..|.|.....|..#......" -> "..#.#.|.#.#.|.#|#|#.#..|..#.#...."
"..|....|.....#.|.....|...|.#.|..|.|...#......" -> ".#|#...|...#.#.|.#.#.|.#.|.#.|.#|#|#..#......"