void scanDirections(int[][] grid, int row, int col) {
int[][] dirs = {{1, 0}, {-1, 0}, {0, 1}, {0, -1}};
for (int[] dir : dirs) {
int r = row + dir[0];
int c = col + dir[1];
while (inside(grid, r, c)) {
visit(r, c);
r += dir[0];
c += dir[1];
}
}
}
def scan_directions(grid, row: int, col: int) -> None:
for dr, dc in ((1, 0), (-1, 0), (0, 1), (0, -1)):
r, c = row + dr, col + dc
while inside(grid, r, c):
visit(r, c)
r += dr
c += dc
def scanDirections(grid: Array[Array[Int]], row: Int, col: Int): Unit =
for (dr, dc) <- Array((1, 0), (-1, 0), (0, 1), (0, -1)) do
var r = row + dr
var c = col + dc
while inside(grid, r, c) do
visit(r, c)
r += dr
c += dc
void scanDirections(const std::vector<std::vector<int>>& grid, int row, int col) {
std::vector<std::pair<int, int>> dirs{{1, 0}, {-1, 0}, {0, 1}, {0, -1}};
for (auto [dr, dc] : dirs) {
int r = row + dr, c = col + dc;
while (inside(grid, r, c)) {
visit(r, c);
r += dr;
c += dc;
}
}
}