#2130 Minesweeper #2

22  1 s   128 MB  

Description

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

Input

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

Output

각 테스트 케이스마다 전체영역 중에서 전체 셀 수에 대한 지뢰 개수의 비율을 % 단위로 소수점 둘째 자리에서 반올림한 값을 소수점 첫째 자리까지와 % 단위를 함께 출력하고, 다음 줄부터 주변 셀에 존재하는 지뢰의 개수를 M x N 크기로 출력한다. 지뢰가 있는 자리는 원래대로 영어 대문자 ‘X’를 출력한다.

Sample Input

Sample Output

2
3 4
....
.X..
....
5 5
X....
....X
.X.X.
.X...
.....
8.3%
1110
1X10
1110
20.0%
X1011
2222X
2X3X2
2X311
11100

Source

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