Finding max path from (0,0) to (5,7) skips cells 1,5 and 2,5. Can anyone explain why? I get 3 different paths, but not the max path which the question needs.
int visited[10][10];
int max_len=0;
void max_path(int a[][10],int x,int y,int x1,int y1,int value=0){
if(x==x1 && y==y1){
if(max_len<value)
max_len=value;
}
else{
if(x+1<10 && !visited[x+1][y] && a[x+1][y]!=0){
visited[x][y]=1;
max_path(a,x+1,y,x1,y1,value+1);
visited[x][y]=0;
}
if(y+1<10 && !visited[x][y+1] && a[x][y+1]!=0){
visited[x][y]=1;
max_path(a,x,y+1,x1,y1,value+1);
visited[x][y]=0;
}
if(y-1>=0 && !visited[x][y-1] && a[x][y-1]!=0){
visited[x][y]=1;
max_path(a,x,y-1,x1,y1,value+1);
visited[x][y]=0;
}
if(x-1>=0 && !visited[x-1][y] && a[x-1][y]!=0){
visited[x][y]=1;
max_path(a,x-1,y,x1,y1,value+1);
visited[x-1][y]=0;
}
}
}