3. Given the following Rust code snippet for Rat in a Maze, what will be printed?
fn main() {
let maze = vec![
vec![1, 0, 0, 0],
vec![1, 1, 0, 1],
vec![0, 1, 0, 0],
vec![1, 1, 1, 1],
];
let mut path = Vec::new();
if solve_maze(&maze, 0, 0, &mut path) {
println!("Path found: {:?}", path);
} else {
println!("No path found");
}
}
fn solve_maze(maze: &Vec, x: usize, y: usize, path: &mut Vec<(usize, usize)>) -> bool {
let n = maze.len();
if x == n - 1 && y == n - 1 {
path.push((x, y));
return true;
}
if x < n && y < n && maze[x][y] == 1 {
path.push((x, y));
if x + 1 < n && solve_maze(maze, x + 1, y, path) {
return true;
}
if y + 1 < n && solve_maze(maze, x, y + 1, path) {
return true;
}
path.pop();
}
false
}