Advertisement
Guest User

Untitled

a guest
Dec 11th, 2019
91
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.15 KB | None | 0 0
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. const int sizeM = 5;
  5. int matrix[sizeM][sizeM] {
  6.     0, 1, 0, 0, 0,
  7.     0, 1, 0, 0, 0,
  8.     0, 1, 0, 0, 0,
  9.     0, 0, 0, 0, 0,
  10.     0, 1, 0, 0, 0
  11. };  
  12.  
  13. void printMatrix(){
  14.     cout << "==============================" << endl;
  15.     for (int i = 0; i < sizeM; i++)
  16.     {
  17.         for (int j = 0; j < sizeM; j++)
  18.         {
  19.             cout << matrix[i][j] << " ";
  20.         }
  21.         cout << endl;
  22.     }
  23.     cout << "==============================" << endl;
  24. }
  25.  
  26. void visit(int x, int y){
  27.     matrix[x][y] = 2;
  28. }
  29.  
  30. bool canVisit(int x, int y){
  31.     return x < sizeM
  32.         && y < sizeM
  33.         && matrix[x][y] == 0;
  34.        
  35. }
  36.  
  37. bool findPath(int cX, int cY, int eX, int eY){
  38.     if (cX == eX && cY == eY)
  39.     {
  40.         return true;
  41.     }
  42.     visit(cX, cY);
  43.     if (canVisit(cX+1, cY) && findPath(cX+1, cY, eX, eY))
  44.     {
  45.         return true;
  46.     }
  47.     if (canVisit(cX, cY+1) && findPath(cX, cY+1, eX, eY)){
  48.         return true;
  49.     }
  50.     return false;
  51. }
  52.  
  53. int main(){
  54.  
  55.     printMatrix();
  56.     cout << "Is there a path? " << findPath(0, 0, 4, 2) << endl;
  57.     printMatrix();
  58.  
  59.     return 0;
  60. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement