Bài 37.15. Mô Phỏng Trò Chơi Minesweeper - [Độ khó: Siêu khó]


LÀM BÀI

Points: 10 (partial)
Time limit: 2.0s
Memory limit: 64M

Author:
Problem type

Bài 37.15. Mô Phỏng Trò Chơi Minesweeper - [Độ khó: Siêu khó]

Bạn đang viết một phiên bản đơn giản của trò chơi Minesweeper. Trên một lưới hình chữ nhật, một số ô chứa mìn ('') và các ô còn lại là ô trống ('.'). Nhiệm vụ của bạn là, đối với mỗi ô trống, đếm số lượng mìn xung quanh nó (tám ô kề cạnh: trên, dưới, trái, phải, và bốn đường chéo). Kết quả sẽ là một lưới mới với các ô mìn giữ nguyên ('') và các ô trống được thay thế bằng số lượng mìn kề cạnh.

INPUT FORMAT

Dòng đầu tiên chứa hai số nguyên RC (1 <= R, C <= 100), lần lượt là số hàng và số cột của lưới. R dòng tiếp theo, mỗi dòng chứa một chuỗi độ dài C, biểu diễn một hàng của lưới Minesweeper. Mỗi ký tự là '*' (mìn) hoặc '.' (ô trống).

OUTPUT FORMAT

In ra R dòng, mỗi dòng chứa C ký tự, là lưới Minesweeper đã được xử lý.

Ví dụ:

Input:

3 3
*..
...
.*.

Output:

*10
2*2
1*1

Giải thích: Lưới ban đầu:

* . .
. . .
. * .

Ta duyệt qua từng ô và tính toán:

  • Ô (0,0) là mìn, giữ nguyên '*'.
  • Ô (0,1) là trống. Các ô kề cạnh là: (0,0)*, (1,0). (0,2). (1,1). Nó chỉ có 1 mìn kề cạnh (ở (0,0)). Vậy là '1'.
  • Ô (0,2) là trống. Các ô kề cạnh là: (0,1). (1,1). (1,2). Nó không có mìn kề cạnh. Vậy là '0'.
  • Ô (1,0) là trống. Các ô kề cạnh là: (0,0), (0,1), (1,1), (2,0), (2,1). Nó có 2 mìn kề cạnh. Vậy là '2'.
  • Ô (1,1) là trống. Các ô kề cạnh là: (0,0), (0,1), (0,2), (1,0), (1,2), (2,0), (2,1), (2,2). Nó có 2 mìn kề cạnh. Vậy là '2'.
  • Ô (1,2) là trống. Các ô kề cạnh là: (0,1), (0,2), (1,1), (2,1)*, (2,2). Nó có 1 mìn kề cạnh. Vậy là '1'.
  • Ô (2,0) là trống. Các ô kề cạnh là: (1,0), (1,1), (2,1)*. Nó có 1 mìn kề cạnh. Vậy là '1'.
  • Ô (2,1) là mìn, giữ nguyên '*'.
  • Ô (2,2) là trống. Các ô kề cạnh là: (1,1), (1,2), (2,1)*. Nó có 1 mìn kề cạnh. Vậy là '1'. Kết quả: ```
  • 1 0 2 2 1 1 * 1 ```


Comments

There are no comments at the moment.

Zalo