Advertisement
vlatkovski

Skokovi (училишен 2018) za 41/50

Mar 7th, 2018
409
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.11 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3.  
  4. int a[4][5] = {};
  5. int r, c, num1;
  6. bool OK;
  7.  
  8. void f(bool odd, int num_visited, map<int, map<int, bool>> visited, int i, int j) {
  9.     if (!OK) return;
  10.     visited[i][j] = true;
  11.     num_visited++;
  12.  
  13. //    string S = "";
  14. //    for (int z = 0; z < num_visited; ++z) S += " -- ";
  15. //    cout << S;
  16. //    printf("i:%i j:%i num_visited:%i %s\n", i, j, num_visited, odd?"LEFT-RIGHT":"UP-DOWN");
  17. //    for (int k = 0; k < r; ++k) {
  18. //        cout << S;
  19. //        for (int l = 0; l < c; ++l) {
  20. //            if (k == i && l == j) {
  21. //                cout << "H";
  22. //            } else {
  23. //                if (visited[k][l]) {
  24. //                    cout << 'x';
  25. //                } else {
  26. //                    char A = a[k][l] == 0 ? '/' : '1';
  27. //                    cout << A;
  28. //                }
  29. //            }
  30. //            cout << " ";
  31. //        }
  32. //        cout << endl;
  33. //    }
  34.  
  35.     if (num_visited == num1) {
  36.         OK = false;
  37.         return;
  38.     }
  39.     if (odd) {
  40.         for (int i1 = 0; i1 < r; ++i1) {
  41.             if (a[i1][j] == 1 && visited[i1][j] == false) {
  42.                 f(false, num_visited, visited, i1, j);
  43.             }
  44.         }
  45.     } else {
  46.         for (int j1 = 0; j1 < c; ++j1) {
  47.             if (a[i][j1] == 1 && visited[i][j1] == false) {
  48.                 f(true, num_visited, visited, i, j1);
  49.             }
  50.         }
  51.     }
  52. }
  53.  
  54. int main() {
  55. //    std::ios::sync_with_stdio(false);
  56. //    freopen("in.txt", "r", stdin);
  57. //    freopen("out.txt", "w", stdout);
  58.     cin >> r >> c;
  59.     num1 = 0;
  60.     OK = true;
  61.     for (int i = 0; i < r; ++i) {
  62.         for (int j = 0; j < c; ++j) {
  63.             int v;
  64.             cin >> v;
  65.             if (v == 1) {
  66.                 num1++;
  67.             }
  68.             a[i][j] = v;
  69.         }
  70.     }
  71.     map<int, map<int, bool>> visited;
  72.     for (int i = 0; i < r; ++i) {
  73.         for (int j = 0; j < c; ++j) {
  74.             if (a[i][j] == 1) {
  75.                 f(true, 0, visited, i, j);
  76.             }
  77.         }
  78.     }
  79.     if (OK) {
  80.         cout << "NE";
  81.     } else {
  82.         cout << "DA";
  83.     }
  84. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement