Ограничения: время – 1000ms/2000ms, память – 256MiB Ввод: input.txt или стандартный ввод Вывод: output.txt или стандартный вывод
Послать решение Blockly Посылки Темы Где Обсудить (0)
Озимандия нажал кнопку самоуничтожения базы в Антарктиде, перепутал элементы схемы пульта управления и сбежал.
Роршах должен восстановить схему, поворачивая элементы таким образом, чтобы все элементы были соединены снова,
и отключить систему самоуничтожения базы.
Напишите программу, которая за оставшееся до взрыва время найдет способ восстановить схему.
Формат ввода
Первая строка ввода содержит два целых числа `N` и `M` (`2\ ≤\ N,\ M\ ≤\ 8`) – размеры
схемы пульта управления.
Далее следует `N` строк, в каждой строке `M` символов.
Символ 'i' означает элемент, у которого один выход,
символ 'r' означает элемент, у которого два выхода под углом 90 градусов,
символ '-' означает элемент, у которого два выхода под углом 180 градусов,
символ 'T' означает элемент, у которого три выхода,
а символ '+' означает элемент, у которого четыре выхода.
Суммарное количество выходов у всех элементов равно `2*(N*M-1)`. Гарантируется,
что, поворачивая элементы, их можно соединить между собой таким образом, что каждый выход у всех
элементов будет соединен с каким-то выходом другого элемента и все элементы будут прямо или
через другие соединены между собой. Между двумя элементами схемы будет ровно один
путь по соединениям.
Формат вывода
Вывести `2*N-1` строк по `2*M-1` символов. Соединяемые элементы
обозначить символом '*', соединения между ними – символами '-' и
'|', пустое место – символом '.'. Если существует
несколько вариантов соединения, то можно вывести любой из них.
Пример ввода
3 4
riii
T-+r
riri
Пример вывода
*-*.*.*
|...|.|
*-*-*-*
|...|..
*-*.*-*