Logo
(追記) (追記ここまで)

21751번 - Сапер 스페셜 저지다국어

시간 제한메모리 제한제출정답맞힌 사람정답 비율
2 초 1024 MB76685.714%

문제

Мальчику Васе очень нравится известная игра <<Сапер>>. В нее играет один человек. Игра идет на клетчатом поле размером $m\times n$ ($m$ строк, $n$ столбцов). В некоторых клетках поля стоят мины. В каждой из остальных клеток записано либо число от 1 до 8 --- количество мин в соседних с ней клетках, либо ничего не написано --- это означает, что в соседних клетках мин нет. Клетки являются соседними, если они имеют хотя бы одну общую вершину. В одной клетке не может стоять более одной мины. Будем называть поле с расположенными на нем минами и числами картой.

Изначально все клетки поля закрыты. Игрок за один ход может открыть какую-нибудь клетку. После этого игроку показывается содержимое этой клетки, и если в открытой им клетке оказывается мина, он проигрывает. В противном случае игра продолжается. Цель игры --- открыть все клетки, в которых нет мин.

У Васи на компьютере есть эта игра, но ему кажется, что все карты, которые в ней есть, некрасивые и неинтересные. Поэтому он решил нарисовать свои. При этом он хочет, чтобы карты, которые он нарисует, после того, как они будут открыты, выглядели красиво.

У Васи есть рисунки, нарисованные на клетчатой бумаге следующим образом: некоторые клетки закрашены в черный цвет, а некоторые оставлены белыми. Вася хочет по каждому такому рисунку сделать соответствующее ему поле для игры в <<Сапера>> по следующему правилу: если на рисунке клетка покрашена в черный цвет, то на этом месте должна быть либо мина, либо число от 1 до 8, если же клетка оставлена белой, то на игровом поле она должна быть пустой.

Напишите программу, которая сделает это за Васю.

입력

В первой строке входного файла содержатся числа $m$ и $n$ (1ドル \le m, n \le 100$) --- количество строк и столбцов соответственно. Далее идет таблица из $m$ строк, по $n$ чисел в каждой строке, задающая Васин рисунок. Каждое число в таблице равно 0 или 1, число 0 означает, что соответствующая клетка на рисунке белая, 1 --- черная. Числа в строках разделяются пробелами.

출력

Выходной файл должен содержать $m$ строк по $n$ символов --- карту игрового поля, $j$-ый символ $i$-ой строки должен содержать символ <<*>> (звездочка) если в клетке $(i,j)$ стоит мина, цифру от 1 до 8, если в этой клетке стоит соответствующее число, либо <<.>> (точка), если клетка $(i,j)$ пустая. Символы пробелами не разделяйте.

Если построить поле, соответствующее рисунку, невозможно, выходной файл должен содержать одну строку с сообщением <<No solution>>.

제한

예제 입력 1

3 4
0 1 1 1
1 1 1 1
1 1 0 0

예제 출력 1

.1*1
1211
*1..

예제 입력 2

3 3
0 1 0
1 0 1
0 1 0

예제 출력 2

No solution

힌트

출처

Olympiad > Russian Olympiad in Informatics > Russia High School Programming Contest > Russia High School Programming Contest 2004 E번

(追記) (追記ここまで)

출처

대학교 대회

  • 사업자 등록 번호: 541-88-00682
  • 대표자명: 최백준
  • 주소: 서울시 서초구 서초대로74길 29 서초파라곤 412호
  • 전화번호: 02-521-0487 (이메일로 연락 주세요)
  • 이메일: contacts@startlink.io
  • 통신판매신고번호: 제 2017-서울서초-2193 호

AltStyle によって変換されたページ (->オリジナル) /