Advertisement
Guest User

Untitled

a guest
Apr 24th, 2018
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.79 KB | None | 0 0
  1. void possible(int ** lab,int n,int m, point curr, stack <point> &stos)
  2. {
  3.     stos.pop();
  4.     int dx[4]={-1,0,1,0};
  5.     int dy[4]={0,-1,0,1};
  6.     int x2, y2;
  7.     for (int i=0;i<4;i++)
  8.         {
  9.             x2= curr.x + dx[i];
  10.             y2= curr.y + dy[i];
  11.             if( x2>=0 && x2<n && y2>=0 && y2<m && lab[x2][y2]==0)
  12.             {
  13.                 lab[x2][y2]=1;
  14.                 stos.push({x2,y2});
  15.             }
  16.         }
  17. }
  18.  
  19. bool find(int ** lab,int n,int m, point start, point end)
  20. {
  21.     //ups xD
  22.     swap(start.x,start.y);
  23.     swap(end.x,end.y);
  24.     //hehe
  25.  
  26.     stack <point> s;
  27.     s.push(start);
  28.     lab[start.x][start.y]=1;
  29.     while (lab[end.x][end.y]==0)
  30.     {
  31.         if (s.empty()) return false;
  32.         possible(lab,n,m,s.top(),s);
  33.     }
  34.     return true;
  35. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement