#2367 Mine Sweeper #3

11  1 s   128 MB  

Description

‘지뢰찾기’ 게임을 개발하려고 한다. 이를 위해서 전체 셀의 수와 지뢰의 개수를 확인하여 출력한 후, 지뢰가 없는 셀에 인접한 셀들 중 지뢰가 몇 개 놓여 있는지를 카운트하여 그 값을 출력하는 프로그램을 작성해 보자. 지뢰밭이 주어질 경우에 지뢰가 없는 셀은 주변 셀(가로, 세로, 대각선으로 인접한 셀)들 중에 몇 개의 지뢰가 있는지를 확인하여 그 숫자를 출력하고, 지뢰가 있는 셀은 원래대로 지뢰 모양이 출력되도록 하는 프로그램을 작성하라. 만약 전체 셀에 지뢰가 하나도 없는 경우라면 No Mine 이라고만 출력한다.

Input

맨 처음 테스트 케이스의 개수 $T(1 \leq T \leq 10)$를 입력 받는다. 그 뒤에 $M * N$ 크기($M$: 높이, $N$: 폭)의 지뢰밭을 의미하는 $M, N(3 \leq M, N \leq 35)$ 을 입력 받는다. 그 다음에 $M * N$ 크기의 지뢰밭이 입력된다. 지뢰가 없는 셀은 '$-$’ 문자로 표시되며 지뢰가 있는 셀은 영어 대문자 ‘$@$’로 표시된다.

Output

각 테스트 케이스마다 전체영역의 셀 개수와 지뢰 개수를 한 줄에 공백 하나로 구분하여 출력한다, 그 다음 줄에는 만약 지뢰가 하나도 없는 경우라면 No Mine 이라고만 출력하고, 만약 지뢰가 1개 이상 존재하는 경우라면 주변 셀에 존재하는 지뢰의 개수를 $M * N$ 크기로 출력한다(sample output 형식 참조). 지뢰가 있는 자리는 원래대로 특수문자 ‘$@$’를 출력한다.

Sample Input

Sample Output

2
3 4
----
----
----
5 5
@----
----@
-@-@-
-@---
-----
12 0
No Mine
25 5
@1011
2222@
2@3@2
2@311
11100

Source

동의대학교 멀티미디공학과 우영운(2014년 12월 23일)