ভূমিকা
আপনি ব্যাকটেরিয়ার চলন নিদর্শন অধ্যয়নরত জীববিজ্ঞানী। আপনার গবেষণা টিমের একটি পেট্রি থালায় রয়েছে এবং আপনি তাদের ক্রিয়াকলাপ রেকর্ড করছেন। দুর্ভাগ্যক্রমে, আপনি মারাত্মকভাবে অনুন্নত, এবং কোনও ভিডিও ক্যামেরা সহ্য করতে পারবেন না, তাই আপনি নিয়মিত বিরতিতে কেবল ডিশের ছবি তোলেন। আপনার কাজটি এমন একটি প্রোগ্রাম তৈরি করা যা এই ছবিগুলি থেকে জীবাণুগুলির নড়াচড়া সনাক্ত করে।
ইনপুট
আপনার ইনপুটগুলি কোনও যুক্তিসঙ্গত বিন্যাসে অক্ষরের দুটি 2 ডি অ্যারে, পেট্রি থালাটির একটানা ছবি উপস্থাপন করে। উভয় অ্যারেতে, অক্ষরটি .
শূন্য স্থান O
উপস্থাপন করে এবং একটি জীবাণু উপস্থাপন করে (আপনি চাইলে যে কোনও দুটি স্বতন্ত্র অক্ষর চয়ন করতে পারেন)। এছাড়াও, চারটি কার্ডিনাল দিকের মধ্যে একটি ধাপে কিছু জীবাণু সরিয়ে "পূর্বে" অ্যারে থেকে "পরে" অ্যারে পাওয়া যায়; বিশেষত, অ্যারেগুলির একই আকার রয়েছে। জীবাণুগুলি একই সাথে চলাফেরা করে, তাই তাদের মধ্যে একটি এমন একটি জায়গায় চলে যেতে পারে যেখানে ইতিমধ্যে অন্য জীবাণু রয়েছে, যদি এটি পথ থেকে সরে যায়। এটি নিশ্চিত যে "" আগে "অ্যারের সীমানায় কেবল ফাঁকা জায়গা থাকে এবং কমপক্ষে একটি জীবাণু থাকে। সুতরাং, নিম্নলিখিত ইনপুটগুলির একটি বৈধ জোড়:
Before After
...... ......
.O..O. ....O.
.OO.O. .OO.O.
...... ..O...
আউটপুট
আপনার আউটপুট ইনপুটগুলির একই আকারে অক্ষরের একক 2D অ্যারে। এটি "পূর্বে" অ্যারে থেকে যে সমস্ত জীবাণুগুলির মধ্যে একটির সাথে স্থানান্তরিত হয়েছিল তাদের প্রতিস্থাপনের মাধ্যমে প্রাপ্ত >^<v
হয়, যা গতিপথের দিকের উপর নির্ভর করে (আপনি এখানে 4 টি স্বতন্ত্র অক্ষরও ব্যবহার করতে পারেন)। বেশ কয়েকটি সম্ভাব্য আউটপুট হতে পারে, তবে আপনি কেবল তার মধ্যে একটি দিতে পারেন। উপরের উদাহরণে, একটি সম্ভাব্য সঠিক আউটপুট
......
.v..O.
.>v.O.
......
আউটপুটে অহেতুক চলাচলের অনুমতি রয়েছে এবং জীবাণুগুলি স্থানগুলি অদল-বদল করতে পারে, সুতরাং নিম্নলিখিতটিও বৈধ:
......
.v..v.
.>v.^.
......
বিধি এবং স্কোরিং
আপনি একটি সম্পূর্ণ প্রোগ্রাম বা একটি ফাংশন লিখতে পারেন। সর্বনিম্ন বাইট গণনা জয়, এবং মান লুফোলগুলি অনুমোদিত নয়।
আমি তুলনামূলকভাবে দক্ষ অ্যালগরিদমগুলিতে আগ্রহী, তবে আমি সম্পূর্ণ জোর করে জোর করে নিষিদ্ধ করতে চাই না। এই কারণে, একটি আধুনিক সিপিইউতে 10 মিনিটের মধ্যে শেষ পরীক্ষার কেস সমাধান করার জন্য -75% এর বোনাস রয়েছে (আমি বেশিরভাগ সমাধান পরীক্ষা করতে পারছি না, তাই আমি আপনাকে এখানে বিশ্বাস করব)। দাবি অস্বীকার: আমি জানি যে একটি দ্রুত অ্যালগরিদম বিদ্যমান ("বিচ্ছিন্ন পথগুলির সমস্যার জন্য অনুসন্ধান করুন"), তবে আমি নিজে এটি প্রয়োগ করি নি।
অতিরিক্ত পরীক্ষার মামলা
Before
......
.O..O.
..OO..
......
After
......
..O...
...OO.
..O...
Possible output
......
.>..v.
..vO..
......
Before
.......
.OOOOO.
.O..OO.
.OO..O.
.OOOOO.
.......
After
.......
..OOOOO
.O...O.
.O...O.
.OOOOOO
....O..
Possible output
.......
.>>>>>.
.O..>v.
.Ov..v.
.O>>v>.
.......
Before
..........
.OOO..OOO.
.OOOOOOOO.
.OOO..OOO.
..........
After
..O.......
.OOO..O.O.
..OOOOOOOO
.O.O..OOO.
.......O..
Possible output
..........
.>^O..O>v.
.^O>>>vO>.
.O>^..>vO.
..........
Before
............
.OO..OOOOOO.
.OO......OO.
...OOOOOO...
.O.OOOOOO.O.
...OOOOOO...
.OOOOOOOOOO.
............
After
..........O.
.OO..OOOOO..
.O...O...O..
.O.OOOOOOO..
.O.OOOOOO..O
...OO..OO...
....OOOOOOOO
.OOO........
Possible output
............
.OO..v<<<<^.
.v<......^<.
...OOO>>>...
.O.OOO^OO.>.
...OOv^OO...
.vvvO>>>>>>.
............
Before
................
.OOOOOO.OOOOOOO.
..OO..OOOOOOOOO.
.OOO..OOOO..OOO.
..OOOOOOOO..OOO.
.OOOOOOOOOOOOOO.
................
After
................
..OOOOO.OOOOOOOO
..OO..OOOOOOOOO.
..OO..OOOO..OOOO
..OOOOOOOO..OOO.
..OOOOOOOOOOOOOO
................
Possible output
................
.>>>>>v.>>>>>>>.
..OO..>>^>>>>>v.
.>>v..OOO^..OO>.
..O>>>>>>^..OOO.
.>>>>>>>>>>>>>>.
................
Before
..............................
.OOO.O.O.....O.....O.O.O..O...
..OOO.O...O..OO..O..O.O.......
.....O......O..O.....O....O...
.O.OOOOO......O...O..O....O...
.OO..O..OO.O..OO..O..O....O...
..O.O.O......OO.OO..O..OO.....
..O....O..O.OO...OOO.OOO...O..
.....O..OO......O..O...OO.OO..
........O..O........OO.O.O....
..O.....OO.....OO.OO.......O..
.O.....O.O..OO.OO....O......O.
..O..OOOO..O....OO..........O.
.O..O...O.O....O..O....O...OO.
....O...OO..O.......O.O..OO...
........O.O....O.O....O.......
.OO.......O.OO..O.......O..O..
....O....O.O.O...OOO..O.O.OO..
.OO..OO...O.O.O.O.O...OO...O..
..............................
After
..............................
.OOOOO.......OO.....O..O......
...OO..O...O...O....OO....O...
....O.O......O..OO...OO...O...
.OO.OOOO......OO..O..O........
O.O.OO..O..O..O..OO...O...OO..
.OO.....O....OO.O..O.OO.O.....
......O.....O.....OOO.OO...O..
....O..OOOO..O..O..O.O.O.OO...
..O......O.O........O...O.O...
.O.....OOO.....OO.OO...O...O..
.......OOO..O.O.O...........O.
.O...O.....O...OOOO..O.O....O.
.O..O.O..O.....O......O....OO.
....O..O..O.O......O.....O....
........OOO....O......O..O....
.OO......O..OO..OOO.....O..O..
..O.O....OO..O...OO...O...OO..
.O..OO....O..O...O.O.O.OO.....
..............O............O..
Possible output
..............................
.OOO.O.v.....>.....>.v.O..v...
..>>^.v...>..^>..v..O.v.......
.....<......>..>.....O....O...
.O.<O><O......O...O..O....v...
.<O..O..v<.O..O^..O..>....>...
..<.^.v......OO.O^..>..<O.....
..^....v..v.Ov...>>^.<OO...O..
.....<..OO......O..O...Ov.v<..
........>..O........O^.v.^....
..^.....Ov.....OO.OO.......O..
.^.....^.^..O>.vO....v......O.
..<..Ov^^..O....><..........O.
.O..O...>.v....O..^....^...OO.
....O...<v..O.......<.^..v<...
........O.O....O.v....O.......
.OO.......<.Ov..O.......O..O..
....O....O.<.^...O^v..O.v.OO..
.O^..<<...O.>.v.>.^...<O...v..
..............................
>^<v
স্ব স্ব দিকের ঠিক এক ধাপের একটি আন্দোলনের সাথে সামঞ্জস্য করে।