ভূমিকা
আমার কাছে জাদু আয়নাতে পূর্ণ একটি ঘর আছে । এগুলি রহস্যময় নিদর্শন যা অন্য যাদু আয়না ব্যতীত যে কোনও আইটেমের নকল করতে পারে। আরও স্পষ্টতই, আইটেমটির একটি সদৃশ সংস্করণ একই দূরত্বে আয়নাটির অন্যদিকে উপস্থিত হবে। তবে, সদৃশ মিরর এবং উভয় আইটেমের (মূল বা সদৃশ) মধ্যে যদি দু'দিকে অন্য যাদু আয়না থাকে তবে নকলটি তৈরি হয় না। আসল আইটেমটি আয়নাতে বাম বা ডান হতে পারে এবং নকলটি অন্যদিকে উপস্থিত হবে। এছাড়াও, সদৃশ আইটেমটি অন্য একটি আয়না দ্বারা নিজেই নকল করা যেতে পারে। আইটেমগুলি কখনই অন্য আইটেমের সদৃশকে অবরুদ্ধ করে না (সরাসরি নকলটির অবস্থানটিতে থাকা ছাড়া)।
ইনপুট
আপনার ইনপুট হ'ল অক্ষর সমন্বিত একটি স্ট্রিং .#|
যা খালি স্থান, আইটেম এবং যাদু মিররগুলিকে উপস্থাপন করে। ইনপুটটিতে সর্বদা কমপক্ষে একটি যাদু আয়ন থাকবে।
আউটপুট
উপরের নিয়ম অনুসারে আপনার আউটপুটটি অন্য স্ট্রিং হবে যেখানে প্রতিটি যাদু মিরর এটি করতে পারে এমন প্রতিটি আইটেম নকল করে। আপনি ধরে নিতে পারেন যে কোনও সদৃশ আইটেম প্রদর্শিত হবে সেই জায়গাতে সর্বদা খালি জায়গা থাকবে (যাতে তারা সীমার বাইরে চলে না)।
উদাহরণ
ইনপুট স্ট্রিং বিবেচনা করুন
.#.|.....|......#
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
বিধি এবং স্কোরিং
আপনি একটি সম্পূর্ণ প্রোগ্রাম বা একটি ফাংশন লিখতে পারেন। সর্বনিম্ন বাইট গণনা জিতেছে। রিজেক্স ইঞ্জিনগুলি ব্যবহার করে না এমন জমাগুলি সেগুলি থেকে পৃথকভাবে প্রতিযোগিতা করে এবং এর সাথে চিহ্নিত করা যেতে পারে (কোনও রেজেক্স নয়) ।
পরীক্ষার মামলা
"|" -> "|"
"..|.." -> "..|.."
".#.|..." -> ".#.|.#."
"..#|.#." -> ".##|##."
".#..|....|.." -> ".#..|..#.|.#"
".|..|.#....." -> "#|#.|.#....."
"...|.#...|....#" -> ".##|##...|...##"
"......#|......." -> "......#|#......"
".#.|.....|......#" -> ".#.|.#...|...#..#"
".......|...#.##|...." -> "##.#...|...#.##|##.#"
"...#..||.......#..#...#" -> "...#..||.......#..#...#"
".##|.#....||#||......#|.#" -> ".##|##....||#||.....##|##"
".##..#...|#..##...|..##....#." -> ".#####..#|#..#####|#####..##."
".#|...||...|#...|..##...|#...." -> ".#|#..||.##|##..|..##..#|#..##"
"....#.|...#.|..|.|.....|..#......" -> "..#.#.|.#.#.|.#|#|#.#..|..#.#...."
"..|....|.....#.|.....|...|.#.|..|.|...#......" -> ".#|#...|...#.#.|.#.#.|.#.|.#.|.#|#|#..#......"