Расстановка чисел в Сапёре
Просмотр в формате PDFГенератор уровней для игры «Сапёр» уже разместил мины на прямоугольном поле размера n на m. Каждая клетка поля содержит либо мину, обозначенную символом '*', либо пока ещё не заполненную безопасную клетку, обозначенную символом '.'.
Теперь генератору нужно проставить в каждой безопасной клетке число соседних мин. Соседними считаются все клетки, имеющие общую сторону или угол с данной, то есть до 8 клеток вокруг неё.
Требуется преобразовать поле следующим образом:
- если в клетке находится мина, символ
'*'должен остаться без изменений; - если клетка безопасна, вместо
'.'нужно записать цифру от0до8, равную количеству мин среди соседних клеток.
Входные данные
В первой строке заданы два целых числа n и m — количество строк и столбцов поля.
В следующих n строках записано описание поля — по m символов в каждой строке. Каждый символ равен либо '.', либо '*'.
Выходные данные
Выведите n строк по m символов — поле после расстановки чисел генератором.
Для клеток с минами выведите '*', для остальных — соответствующую цифру от 0 до 8.
Ограничения
1 <= n, m <= 1000- ввод и вывод осуществляются через стандартный ввод и стандартный вывод
Примеры
Пример 1
Входные данные
3 3
*..
.*.
..*
Выходные данные
*21
2*2
12*
Пример 2
Входные данные
3 4
***.
....
.*..
Выходные данные
***1
3431
1*10
Комментарии