Unable to solve Testcase 3
Please Help.
import java.util.*;
public class Main {
public static void main(String args[]) {
Scanner in = new Scanner(System.in);
int n = in.nextInt(), m = in.nextInt();
char Maze[][] = new char[n][m];
in.nextLine();
for (int i = 0; i < n; i++){
String str = in.nextLine();
for(int j =0;j<str.length();j++)
Maze[i][j] = str.charAt(j);
}
boolean ans[][] = new boolean[n][m];
isItSafe(Maze, ans, 0, 0);
System.out.println("NO PATH FOUND");
}
public static void isItSafe(char[][] Maze, boolean ans[][], int i, int j) {
if (i < 0 || j < 0 || i == Maze.length || j == Maze[i].length)
return;
if (i == Maze.length - 1 && j == Maze[i].length - 1) {
if(Maze[i][j]=='X'){
System.out.println( "NO PATH FOUND");
System.exit(0);
}
else {
ans[i][j] = true;
for (int k = 0; k < Maze.length; k++) {
for (int l = 0; l < Maze[i].length; l++) {
if (ans[k][l] == true)
System.out.print("1 ");
else
System.out.print("0 ");
}
System.out.println();
}
System.exit(0);
}
return;
}
if (Maze[i][j] == 'X'||ans[i][j] == true)
return;
ans[i][j] = true;
// top
isItSafe(Maze, ans, i - 1, j);
// bottom
isItSafe(Maze, ans, i + 1, j);
// right
isItSafe(Maze, ans, i, j + 1);
// left
isItSafe(Maze, ans, i, j - 1);
ans[i][j] = false;
}
}