rafid_shad

DFS on grid

Dec 17th, 2020 (edited)
799
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.73 KB | None | 0 0
  1. #include <stdio.h>
  2.  
  3. int dr[] = {-1,  0,  0, +1};
  4. int dc[] = { 0, -1, +1,  0};
  5.  
  6. int a[7][7];
  7. int vis[7][7];
  8. int ar, ac;
  9. int n;
  10.  
  11. void dfs(int r, int c){
  12.     vis[r][c] = 1;
  13.     for(int i=0; i<4; i++){
  14.         int vr = r + dr[i];
  15.         int vc = c + dc[i];
  16.         if(vr < 0 || vr == n || vc < 0 || vc == n || a[vr][vc] != 1) continue;
  17.  
  18.         if(!vis[vr][vc]){
  19.              ar = vr;
  20.              ac = vc;
  21.              dfs(vr, vc);
  22.         }
  23.     }
  24. }
  25. int main()
  26. {
  27.     n = 6;
  28.     for(int i=0; i<6;i++){
  29.         for(int j=0; j<6; j++){
  30.             scanf("%d", &a[i][j]);
  31.         }
  32.     }
  33.     int sr, sc;
  34.     scanf("%d %d", &sr, &sc);
  35.     dfs(sr, sc);
  36.     printf("Final row: %d \n Final colum: %d \n", ar, ac);
  37. }
  38.  
  39.  
Add Comment
Please, Sign In to add comment