fork download
  1. // #include<stdio.h>
  2. #include<bits/stdc++.h>
  3. using namespace std;
  4.  
  5. bool hasPathHelper(int **arr,int n,int** path,int x,int y){
  6. if(x<0 || y<0|| x>=n || y>=n || path[x][y]==1 || arr[x][y]==0){
  7. return false;
  8. }
  9. if(x==n-1 && y==n-1){
  10. return true;
  11. }
  12. path[x][y] =1;
  13. if(hasPathHelper(arr,n,path,x+1,y))
  14. return true;
  15. if(hasPathHelper(arr,n,path,x-1,y))
  16. return true;
  17. if(hasPathHelper(arr,n,path,x,y+1))
  18. return true;
  19. if(hasPathHelper(arr,n,path,x,y-1))
  20. return true;
  21. path[x][y] = 0;
  22. return false;
  23. }
  24.  
  25.  
  26. bool hasPath(int **arr,int n){
  27. int **path = new int*[n];
  28. for(int i=0;i<n;i++){
  29. path[i] = new int[n];
  30. for(int j=0;j<n;j++){
  31. path[i][j]=0;
  32. }
  33. }
  34. return hasPathHelper(arr,n,path,0,0);
  35. }
  36.  
  37. int main(){
  38. int n;
  39. int **arr = new int*[n];
  40. for(int i=0;i<n;i++){
  41. arr[i] = new int[n];
  42. for(int j=0;j<n;j++){
  43. cin >> arr[i][j];
  44. }
  45. }
  46. cout<< hasPath(arr,n);
  47. }
Success #stdin #stdout 0s 4580KB
stdin
3
1 1 1
1 1 1
1 1 1
stdout
Standard output is empty