Натхненна цією маленькою грою .
Виклик
Подано в якості початкового положення сітки (завжди 5x5), наприклад:
-ABCD
-A---
---C-
---BD
--E-E
Вам потрібно з'єднати літери (однакові букви всі разом), видаливши всі порожні -пробіли. Букви будуть завжди A,B,C,D and E.
Кожна пара букв повинна бути з'єднана однією нерозгалуженою лінією, яка може згинатись під прямим кутом (використовуючи ту саму букву для зображення лінії).
Гарантія буде мати кожну початкову літеру рівно 2 рази, і вона завжди матиме всі початкові літери AE.
Вхід може бути прочитаний з stdin, або один єдиний рядок, як аргумент до якоїсь функції, або навіть масив / матриця / список символів, найбільш зручним способом для вашої мови кодування.
Оскільки це код-гольф, найкоротший код у байтах виграє!
Приклад
Для кожної проблеми існує не одне рішення, але правила стосуються всіх (немає порожнього місця та не відокремлених літер). І вхід гарантовано мати хоча б один правильний вихід.
Почнемо з'єднувати букви А:
AABCD
AA---
AA-C-
AA-BD
AAE-E
Тепер, з'єднавши літери B:
AABCD
AAB--
AABC-
AABBD
AAE-E
Тепер, з'єднавши літери С:
AABCD
AABC-
AABC-
AABBD
AAE-E
Тепер, з'єднавши літери D:
AABCD
AABCD
AABCD
AABBD
AAE-E
І, нарешті, букви Е:
AABCD
AABCD
AABCD
AABBD
AAEEE
Ще одні зразки
input:
E--E-
BB-C-
AD---
---C-
AD---
output:
EEEEE
BBECE
ADECE
ADECE
ADEEE
input:
A----
---B-
-C-C-
-D-D-
BE-EA
output:
AAAAA
BBBBA
BCCCA
BDDDA
BEEEA
A-E?