各マスについて、もしそのマスに駒があれば'#'です。
そうでない場合、隣接したマス8つを見て駒のあるマスをカウントすればACできます。
配列外参照に気をつけて実装してください。
以下はPythonでのコード例です。
dx = [-1, 0, 1] dy = [-1, 0, 1] vecs = [(x, y) for x in dx for y in dy] N, K = map(int, input().split()) Grid = [[0] * N for _ in range(N)] for _ in range(K): r, c = map(int, input().split()) Grid[r - 1][c - 1] = '#' for i in range(N): for j in range(N): if Grid[i][j] == '#': continue for di, dj in vecs: ni, nj = i + di, j + dj if not (0 <= ni < N and 0 <= nj < N): continue if Grid[ni][nj] == '#': Grid[i][j] += 1 for row in Grid: print(*row)