2
public int countUnguarded(int m, int n, int[][] guards, int[][] walls) {3
int[][] dirs = {{1, 0}, {-1, 0}, {0, 1}, {0, -1}};4
char[][] grid = new char[m][n];5
int count = m * n - guards.length - walls.length;6
for (int[] wall : walls) {7
int x = wall[0], y = wall[1];10
for (int[] guard : guards) {11
int x = guard[0], y = guard[1];14
for (int[] point : guards) {15
for (int dir[] : dirs) {16
int x = point[0] + dir[0];17
int y = point[1] + dir[1];18
while (!(x < 0 || y < 0 || x >= m || y >= n || grid[x][y] == 'G' || grid[x][y] == 'W')) {19
if (grid[x][y] != 'P') count--;