printРабочее место участника

printЗадачи

1981. Пираты!

Ограничения: время – 500ms/1000ms, память – 256MiB Ввод: input.txt или стандартный ввод Вывод: output.txt или стандартный вывод copy
Послать решение Blockly Посылки Темы Где Обсудить (0)

В Карибском море появились пираты, которые на быстроходных катерах брали на абордаж торговые суда, а после нападения скрывались среди многочисленных коралловых островков. Инспектор Клузо хочет определить местонахождение логова пиратов, используя информацию о местах нападений и дальности хода катера.
Напишите программу, которая проанализирует карту с отметками о местах нападений пиратов и найдет область, в которой нужно искать логово пиратов.
В первой строке ввода заданы три целых числа: размеры карты `N`, `M` и максимальное расстояние от логова до места нападения `K` (`2\ ≤\ N,\ M,\ K\ ≤\ 100`). Каждая из следующих `N` строк содержит `M` символов. Символ '.' обозначает клетку с водой на карте, символ '#' – клетку с сушей, а символ '*' – клетку с водой, где произошло нападение. Гарантируется, что на карте отмечено не менее 1 и не более 100 мест нападения. При решении задачи будем считать, что катер может двигаться из клетки в клетку только по горизонтали или вертикали и не может заплывать в клетку с сушей или выходить за пределы карты.
Вывести карту, где символом '?' отмечены клетки, из которых до всех мест нападения катеру нужно сделать не более `K` переходов из клетки в клетку. Символы '*' на карте заменяются на '.' или '?', а символы '#' сохраняются.

Пример ввода

4 6 3
..###.
.*#.*.
....#.
..*...

Пример вывода

..###.
..#...
..??#.
......
loading