Це виклик на честь переможців категорії «Новачок року» Best of PPCG 2015 : каламутна рибка (бо я не та мова, яку ви шукаєте! ) Та квартати (для впровадження машини-істини ). Вітаємо!
Фон
У найглибших окопах океану мешкає рідкісна і невловима риба квадратної форми під назвою кварта-риба . Це схоже на планер зі стільникового автомата Game of Life. Ось дві риби-кварти різних розмірів:
-o-
--o
ooo
--oo--
--oo--
----oo
----oo
oooooo
oooooo
Вам вдалося зробити фотографію риби-квартети, але рибу це досить важко помітити, оскільки вона вкрита грязюкою. Тепер вам доведеться написати програму очищення фотографії.
Вхідні дані
Ваш вхід - це прямокутна 2D сітка символів .-o#
, подана у вигляді рядка, розділеного новим рядком. Якщо ви хочете, ви можете використовувати труби |
замість нових ліній як роздільники, і ви можете припустити один кінцевий та / або попередній роздільник.
Вхід буде містити рівно одну рибу-чверть певної довжини 3*n
, де n ≥ 1
є додатне ціле число, оточене періодами, .
що представляють океанське дно. Риба завжди буде в орієнтації, зображеній вище. Накладений на цю сітку, буде рівно одна не порожня прямокутна область хешів #
, яка являє собою пляму грязі. Пляминка може покривати кварту-рибу частково або повністю. Прикладом може бути введення даних
............
..--oo--....
..--oo--....
..---#####..
..---#####..
..ooo#####..
..oooooo....
Вихідні дані
Ваш вихід повинен бути створений з введення, замінивши всі хеші символами .-o
, щоб сітка містила рівно одну рибку-чверть. Завжди знайдеться унікальний спосіб виконати цю заміну належним чином; зокрема, калина грязі повністю покриє рибу лише за умови, що її розмір становить 3 × 3. На виході використовується той же роздільник, що і вхід. Для вищевказаного вводу правильним буде вихід
............
..--oo--....
..--oo--....
..----oo....
..----oo....
..oooooo....
..oooooo....
Правила та оцінка
Ви можете написати повну програму або функцію. Виграє найменший кількість байтів, а стандартні лазівки заборонені. Немає часових меж: якщо ваше подання згодом зупинить необмежений час та ресурси, ви все в порядку.
Тестові справи
Input:
.......
...-o-.
...--o.
##.ooo.
##.....
Output:
.......
...-o-.
...--o.
...ooo.
.......
Input:
...-o-.
...-#o.
...ooo.
.......
Output:
...-o-.
...--o.
...ooo.
.......
Input:
.........
.###.....
.###.....
.ooo.....
Output:
.........
.-o-.....
.--o.....
.ooo.....
Input:
.....
.###.
.###.
.###.
Output:
.....
.-o-.
.--o.
.ooo.
Input:
......
......
......
...###
...###
...###
Output:
......
......
......
...-o-
...--o
...ooo
Input:
###o--....
###o--....
###-oo....
###-oo....
###ooo....
###ooo....
###.......
Output:
--oo--....
--oo--....
----oo....
----oo....
oooooo....
oooooo....
..........
Input:
............
..--oo--....
..--oo--....
..---#####..
..---#####..
..ooo#####..
..oooooo....
Output:
............
..--oo--....
..--oo--....
..----oo....
..----oo....
..oooooo....
..oooooo....
Input:
...--oo--....
.#########...
.#########...
.#########...
...oooooo....
...oooooo....
.............
.............
Output:
...--oo--....
...--oo--....
...----oo....
...----oo....
...oooooo....
...oooooo....
.............
.............
Input:
..............
..............
.########.....
.########.....
.########-....
.########-....
.########o....
.########o....
.########o....
.########o....
.########.....
..............
Output:
..............
..............
..............
..............
....--oo--....
....--oo--....
....----oo....
....----oo....
....oooooo....
....oooooo....
..............
..............
Input:
.................
.................
..---ooo---......
..--#########....
..--#########....
..--#########....
..--#########....
..--#########....
..oo#########....
..oo#########....
..oo#########....
....#########....
Output:
.................
.................
..---ooo---......
..---ooo---......
..---ooo---......
..------ooo......
..------ooo......
..------ooo......
..ooooooooo......
..ooooooooo......
..ooooooooo......
.................
Input:
.........................
.........................
....----oooo----.........
....----########.........
....----########.........
....----########.........
....----########.........
....----########.........
....----########.........
....----########.........
....oooo########.........
....oooo########.........
....oooooooooooo.........
....oooooooooooo.........
.........................
Output:
.........................
.........................
....----oooo----.........
....----oooo----.........
....----oooo----.........
....----oooo----.........
....--------oooo.........
....--------oooo.........
....--------oooo.........
....--------oooo.........
....oooooooooooo.........
....oooooooooooo.........
....oooooooooooo.........
....oooooooooooo.........
.........................
......|......|......|...###|...###|...###
(якщо рішення спробує всі можливі