Advertisement
knakul853

Untitled

Nov 26th, 2020
644
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.73 KB | None | 0 0
  1. void dfs(int m[MAX][MAX], int i, int j, int n, vector<string>&ans, string temp){
  2.    
  3.     if(i<0 || j < 0 || i>=n || j >=n || m[i][j]==0 )return;
  4.       if(i==n-1 && j == n-1 ){
  5.         ans.push_back(temp);
  6.         return;
  7.     }
  8.    
  9.     if(m[i][j] == 0) return;
  10.     m[i][j]=0;
  11.    
  12.     dfs(m, i+1, j, n, ans, temp+"D");
  13.     dfs(m, i, j+1, n, ans, temp+"R");
  14.     dfs(m, i-1, j, n, ans, temp+"U");
  15.     dfs(m, i, j-1, n, ans, temp+"L");
  16.     m[i][j]=1;
  17.    
  18. }
  19.  
  20. vector<string> printPath(int m[MAX][MAX], int n) {
  21.     // Your code goes here
  22.     if(n==0)return {};
  23.     if(m[0][0]==0 || m[n-1][n-1]==0)return {};
  24.    
  25.     vector<string>ans;
  26.     dfs(m, 0, 0, n, ans, "");
  27.     sort(ans.begin(), ans.end());
  28.     return ans;
  29. }
  30.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement