Advertisement
Guest User

Untitled

a guest
Jan 29th, 2020
89
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.83 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2.  
  3. using namespace std;
  4.  
  5.  
  6. #define MAXN 100
  7. int dx[8] = {1, 1, 0, -1, -1, -1, 0, 1};
  8. int dy[8] = {0, -1, -1, -1, 0, 1, 1, 1};
  9.  
  10. void dfs(int vi, int vj, int n, int m, string mp[MAXN], int bio[][MAXN]) {
  11. for (int di = 0; di < 8; ++di) {
  12. int i = vi + dy[di];
  13. int j = vj + dx[di];
  14. if (i<0 || i>=n || j<0 || j>=m || bio[i][j]) continue;
  15. bio[i][j] = 1;
  16. if (mp[i][j]=='#') dfs(i, j, n, m, mp, bio);
  17. }
  18. }
  19.  
  20. int main() {
  21. int n, m, bio[MAXN][MAXN] = {};
  22. string mp[MAXN];
  23. cin >> n >> m;
  24. for (int i = 0; i < n; ++i) {
  25. cin >> mp[i];
  26. }
  27. int ans = 0;
  28. for (int i = 0; i < n; ++i) {
  29. for (int j = 0; j < m; ++j) {
  30. if (!bio[i][j] && mp[i][j]=='#') {
  31. dfs(i, j, n, m, mp, bio);
  32. ans++;
  33. }
  34. }
  35. }
  36. cout << ans << endl;
  37. return 0;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement