Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- using namespace std;
- int a[4][5] = {};
- int r, c, num1;
- bool OK;
- void f(bool odd, int num_visited, map<int, map<int, bool>> visited, int i, int j) {
- if (!OK) return;
- visited[i][j] = true;
- num_visited++;
- // string S = "";
- // for (int z = 0; z < num_visited; ++z) S += " -- ";
- // cout << S;
- // printf("i:%i j:%i num_visited:%i %s\n", i, j, num_visited, odd?"LEFT-RIGHT":"UP-DOWN");
- // for (int k = 0; k < r; ++k) {
- // cout << S;
- // for (int l = 0; l < c; ++l) {
- // if (k == i && l == j) {
- // cout << "H";
- // } else {
- // if (visited[k][l]) {
- // cout << 'x';
- // } else {
- // char A = a[k][l] == 0 ? '/' : '1';
- // cout << A;
- // }
- // }
- // cout << " ";
- // }
- // cout << endl;
- // }
- if (num_visited == num1) {
- OK = false;
- return;
- }
- if (odd) {
- for (int i1 = 0; i1 < r; ++i1) {
- if (a[i1][j] == 1 && visited[i1][j] == false) {
- f(false, num_visited, visited, i1, j);
- }
- }
- } else {
- for (int j1 = 0; j1 < c; ++j1) {
- if (a[i][j1] == 1 && visited[i][j1] == false) {
- f(true, num_visited, visited, i, j1);
- }
- }
- }
- }
- int main() {
- // std::ios::sync_with_stdio(false);
- // freopen("in.txt", "r", stdin);
- // freopen("out.txt", "w", stdout);
- cin >> r >> c;
- num1 = 0;
- OK = true;
- for (int i = 0; i < r; ++i) {
- for (int j = 0; j < c; ++j) {
- int v;
- cin >> v;
- if (v == 1) {
- num1++;
- }
- a[i][j] = v;
- }
- }
- map<int, map<int, bool>> visited;
- for (int i = 0; i < r; ++i) {
- for (int j = 0; j < c; ++j) {
- if (a[i][j] == 1) {
- f(true, 0, visited, i, j);
- }
- }
- }
- if (OK) {
- cout << "NE";
- } else {
- cout << "DA";
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement