Фон
Tatamibari - це логічна головоломка, розроблена Ніколі.
Головоломка Tatamibari грається на прямокутній сітці з трьома різними видами символів:. +
, -
. і |
. Розв’язувач повинен розділити сітку на прямокутні або квадратні області відповідно до таких правил:
- Кожен розділ повинен містити в ньому рівно один символ.
+
Символ повинен міститися в квадраті.|
Символ повинен міститися у вигляді прямокутника з висотою , більшою шириною.-
Символ повинен міститися у вигляді прямокутника з шириною більшою , ніж висота.- Чотири частини можуть ніколи не ділити один кут. (Ось так зазвичай кладуть японські плитки татамі.)
Далі наведено приклад головоломки з рішенням:
Завдання
Розв’яжіть задану загадку Татамібарі.
Введення-виведення
Вхід є двовимірною сіткою, яка представляє задану головоломку Tatamibari. Кожна осередок містить один з чотирьох символів: +
, -
, |
, і характер вашого вибору , щоб представити без підказки клітини. У тестових випадках використовується зірочка *
.
Ви можете обрати будь-який відповідний вихідний формат, який однозначно може представляти будь-яке дійсне рішення головоломки Tatamibari. Це включає, але не обмежується: (якщо сумніваєтесь, запитайте в коментарях).
- Список чотирьох кортежів, де кожен кортеж включає верхній індекс, лівий покажчик, ширину та висоту прямокутника (або будь-яке еквівалентне зображення)
- Числова сітка такої ж форми, що і вхідна, де кожне число являє собою прямокутник
- Список наборів координат, де кожен набір включає всі координати комірок у прямокутнику
Якщо головоломка має кілька рішень, ви можете вивести будь-яке число (одне чи більше) її дійсних рішень. Вхід гарантовано мати хоча б одне рішення.
Тестові справи
Puzzle:
|-*
*+|
*-*
Solution:
122
134
554
=====
Puzzle:
+***
**|*
*+**
***-
Solution:
1122
1122
3322
3344
======
Puzzle:
|*+*+
*****
****-
***+|
+****
Solution:
12233
12233
44444
55667
55667
=======
Puzzle:
****-**
**-**|*
*|*****
****-**
*******
**+*|**
*****+*
One possible solution:
1122222
1133344
1155544
1155544
6667744
6667788
6667788
===========
Puzzle:
*-****|+**
+*-******|
****+*****
*-******||
**++|*****
+****-|***
-****-**+*
********-*
|*+*+|****
*-*--**+*+
Solution:
1111122334
5666622334
7777822994
7777A2299B
CCDEA2299B
CCFFFFGGHH
IIIIJJGGHH
KLLMMNGGOO
KLLMMNGGPP
QQRRSSSTPP
Правила
Діють стандартні правила гольф-коду . Виграє найкоротший код у байтах.