#include<iostream>//iostream
#include<vector>//vector
using namespace std;
//上面的,iostream;vector
int main() {
    int n, m;
    cin >> n >> m;  // 读取雷区行数和列数

    vector<vector<char>> grid(n, vector<char>(m));
    for (int i = 0; i < n; ++i) {
        for (int j = 0; j < m; ++j) {
            cin >> grid[i][j];  // 读取雷区分布情况
        }
    }

    // 遍历雷区,计算并输出非地雷格周围的地雷数量
    for (int i = 0; i < n; ++i) {
        for (int j = 0; j < m; ++j) {
            if (grid[i][j] == '?') {
                int count = 0;
                // 遍历当前格子的8个相邻方向
                for (int di = -1; di <= 1; ++di) {
                    for (int dj = -1; dj <= 1; ++dj) {
                        int ni = i + di, nj = j + dj;
                        // 检查相邻格子是否在雷区内且为地雷格
                        if (ni >= 0 && ni < n && nj >= 0 && nj < m && grid[ni][nj] == '*') {
                            count++;
                        }
                    }
                }
                cout << count;  // 输出非地雷格周围的地雷数量
            } else {
                cout << grid[i][j];  // 输出地雷格标记
            }
        }
        cout << endl;  // 换行
    }

    return 0;
}

5 条评论

  • 1

信息

ID
529
时间
1000ms
内存
256MiB
难度
5
标签
递交数
142
已通过
60
上传者