The code is below-
#include
using namespace std;
char out[100][100];
bool raninmaze(char inp[][1000],int i,int j,int n,int m){
if(i == n - 1 and j == m - 1 ){
out[i][j]=‘1’;
for(int p=0;p<n;p++){
for(int q=0;q<m;q++){
cout<<out[p][q]<<" ";
}cout<<endl;
}
exit(0);
//return true;
}
if(i>n or j>m){
return false;
}
if(inp[i][j]==‘X’){
return false;
}
out[i][j]=‘1’;
bool a= raninmaze(inp,i,j+1,n,m);
bool b=raninmaze(inp,i+1,j,n,m);
out[i][j]=‘O’;
return a or b;
}
int main() {
int n,m;
cin>>n>>m;
char inp[1000][1000];
//char out[n][m];
for(int p=0;p<n;p++){
for(int q=0;q<m;q++){
cin>>inp[p][q];
}
}
for(int p=0;p<n;p++){
for(int q=0;q<m;q++){
out[p][q]=‘0’;
}
}
bool a= raninmaze(inp,0,0,n,m);
if(a==false){
cout<<"-1";
}
return 0;
}