|
Сапер
(Время: 1 сек. Память: 32 Мб Сложность: 35%)
Всем известна игра «Сапер», в которую играет один человек. Игра присходит на клетчатом поле размером N×M (N строк и M столбцов). Некоторые клетки поля содержат мины (не более одной), остальные клетки пусты. В пустых клетках записано либо число от 1 до 8 – количество мин в соседних с ней клетках, либо ничего не написано, если в соседних клетках мин нет. Соседние клетки имеют хотя бы одну общую вершину. Такое поле с расположенными на нем минами и числами можно представить в виде карты.
В начале игры все клетки поля закрыты. Игрок за один ход может открыть какую-нибудь клетку. После этого игроку показывается содержимое этой клетки, и если там мина, он проигрывает и игра завершается. В противном случае игра продолжается. Цель игры – открыть все клетки, в которых нет мин.
Есть рисунок на клетчатой бумаге определенного размера N×M, где некоторые клетки закрашены в черный цвет, а некоторые оставлены белыми. Требуется по данному рисунку сделать соответствующее ему поле для игры в «Сапера» по следующему правилу: если на рисунке клетка покрашена в черный цвет, то на этом месте должна быть либо мина, либо число от 1 до 8, если же клетка оставлена белой, то на игровом поле она должна быть пустой.
Напишите программу, которая по заданному рисунку составляет карту для игры в «Сапера» по правилам, приведенным выше.
Входные данные
Входные данные
В первой строке входного файла INPUT.TXT содержатся целые числа N и M (1 ≤ N, M ≤ 100) – количество строк и столбцов соответственно. Далее идет таблица из N строк, по M чисел в каждой строке, задающая рисунок. Каждое число в таблице равно 0 или 1. Число 0 означает, что соответствующая клетка на рисунке белая, 1 – черная. Числа в строках разделяются пробелами.
Выходные данные
В выходной файл OUTPUT.TXT выведите N строк по M символов – карту игрового поля, j-ый символ i-ой строки должен содержать символ «*» (звездочка) если в клетке (i,j) стоит мина, цифру от 1 до 8, если в этой клетке стоит соответствующее число, либо «.» (точка), если клетка (i,j) пустая. Если построить поле, соответствующее рисунку, невозможно, выведите «No solution».
Примеры
№ | INPUT.TXT | OUTPUT.TXT |
1 | 3 4
0 1 1 1
1 1 1 1
1 1 0 0 | .1*1
1211
*1.. |
2 | 3 3 1 0 1 0 1 0 1 0 1 | No solution |
Для отправки решения задачи необходимо зарегистрироваться и авторизоваться!
| |