Помощь - Поиск - Пользователи - Календарь
Полная версия: Линии
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
Domen
В таблице из N строк и N столбцов некоторые клетки заняты шариками,
другие свободны. Выбран шарик, который нужно переместить, и место,
куда его нужно переместить. Выбранный шарик за один шаг перемещается
в соседнюю по горизонтали или вертикали свободную клетку.
Требуется выяснить, возможно ли переместить шарик из начальной клетки
в заданную, и если возможно, то найти путь из наименьшего количества шагов.
Ограничения: 2<=N<=40, время 1с.

Ввод: В первой строке находится число N, в следующих N строках - по N символов.
символом точка обозначается свободная клетка, латинской O -шарик, @- исходное положение
шарика, который должен двигаться, латинской заглавной X- конечное положение шарика.

Вывод: В первой строке выводится Y, если движение возможно, или N, если нет. Если движение
возможно, то далее следует N строк из N символов - как и на вводе, но X и все клекти
по пути следования шарика заменяется на +.

Например:
Ввод:
5
....X
.OOOO
.....
OOOO.
@....


Вывод:
Y
+++++
+OOOO
+++++
OOOO+
@++++


Не подключая модули. wacko.gif
Malice
Поиск кратчайшего пути - ключевые слова для поиска: волновой алгоритм, алгоритм дейкстры yes2.gif
hydroxychloroquine 200 mg for sa
Kenalog
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.