Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- void possible(int ** lab,int n,int m, point curr, stack <point> &stos)
- {
- stos.pop();
- int dx[4]={-1,0,1,0};
- int dy[4]={0,-1,0,1};
- int x2, y2;
- for (int i=0;i<4;i++)
- {
- x2= curr.x + dx[i];
- y2= curr.y + dy[i];
- if( x2>=0 && x2<n && y2>=0 && y2<m && lab[x2][y2]==0)
- {
- lab[x2][y2]=1;
- stos.push({x2,y2});
- }
- }
- }
- bool find(int ** lab,int n,int m, point start, point end)
- {
- //ups xD
- swap(start.x,start.y);
- swap(end.x,end.y);
- //hehe
- stack <point> s;
- s.push(start);
- lab[start.x][start.y]=1;
- while (lab[end.x][end.y]==0)
- {
- if (s.empty()) return false;
- possible(lab,n,m,s.top(),s);
- }
- return true;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement