Ограничения: время – 500ms/1000ms, память – 256MiB Ввод: input.txt или стандартный ввод Вывод: output.txt или стандартный вывод
Послать решение Blockly Посылки Темы Где Обсудить (0)
В Карибском море появились пираты, которые на быстроходных катерах брали на абордаж торговые суда, а
после нападения скрывались среди многочисленных коралловых островков. Инспектор Клузо хочет
определить местонахождение логова пиратов, используя информацию о местах нападений и дальности хода катера.
Напишите программу, которая проанализирует карту с отметками о местах нападений пиратов и
найдет область, в которой нужно искать логово пиратов.
В первой строке ввода заданы три целых числа: размеры карты `N`, `M` и максимальное расстояние от логова до места
нападения `K` (`2\ ≤\ N,\ M,\ K\ ≤\ 100`). Каждая из следующих `N` строк содержит `M` символов. Символ '.'
обозначает клетку с водой на карте, символ '#' – клетку с сушей, а символ '*' – клетку с водой,
где произошло нападение. Гарантируется, что на карте отмечено не менее 1 и не более 100 мест нападения.
При решении задачи будем считать, что катер может двигаться из клетки в клетку только по горизонтали или
вертикали и не может заплывать в клетку с сушей или выходить за пределы карты.
Вывести карту, где символом '?' отмечены клетки, из которых до всех мест нападения катеру нужно
сделать не более `K` переходов из клетки в клетку. Символы '*' на карте заменяются
на '.' или '?', а символы '#' сохраняются.
Пример ввода
4 6 3
..###.
.*#.*.
....#.
..*...
Пример вывода
..###.
..#...
..??#.
......