Advertisement
Guest User

Untitled

a guest
Nov 17th, 2019
101
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.10 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2.  
  3. using namespace std;
  4.  
  5. int cnt = 0;
  6. char area[22][22];
  7. int visited[22][22];
  8. int columns, rows;
  9.  
  10. void dfs(int r, int c)
  11. {
  12.     if (visited[r][c] == 1 || r <= 0 || c <= 0 || r > rows || c > columns)
  13.     {
  14.         return;
  15.     }
  16.  
  17.     if (area[r][c] == '#')
  18.     {
  19.         return;
  20.     }
  21.  
  22.     if (area[r][c] == '.' || area[r][c] == '@')
  23.     {
  24.         cnt++;
  25.     }
  26.  
  27.     visited[r][c] = 1;
  28.  
  29.     dfs(r + 1, c);
  30.     dfs(r - 1, c);
  31.     dfs(r, c + 1);
  32.     dfs(r, c - 1);
  33. }
  34.  
  35. int main()
  36. {
  37.     int t, r, c;
  38.     cin >> t;
  39.     for (int q = 1; q <= t; q++)
  40.     {
  41.         cin >> columns >> rows;
  42.         for (int i = 1; i <= rows; i++)
  43.         {
  44.             for (int j = 1; j <= columns; j++)
  45.             {
  46.                 cin >> area[i][j];
  47.                 if (area[i][j] == '@')
  48.                 {
  49.                     r = i;
  50.                     c = j;
  51.                 }
  52.             }
  53.         }
  54.  
  55.         dfs(r, c);
  56.         cout << "Case " << q << ": " << cnt << endl;
  57.         cnt = 0;
  58.         memset(visited, 0, sizeof(visited));
  59.     }
  60.     return 0;
  61. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement