Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- using namespace std;
- #define MAXN 100
- int dx[8] = {1, 1, 0, -1, -1, -1, 0, 1};
- int dy[8] = {0, -1, -1, -1, 0, 1, 1, 1};
- void dfs(int vi, int vj, int n, int m, string mp[MAXN], int bio[][MAXN]) {
- for (int di = 0; di < 8; ++di) {
- int i = vi + dy[di];
- int j = vj + dx[di];
- if (i<0 || i>=n || j<0 || j>=m || bio[i][j]) continue;
- bio[i][j] = 1;
- if (mp[i][j]=='#') dfs(i, j, n, m, mp, bio);
- }
- }
- int main() {
- int n, m, bio[MAXN][MAXN] = {};
- string mp[MAXN];
- cin >> n >> m;
- for (int i = 0; i < n; ++i) {
- cin >> mp[i];
- }
- int ans = 0;
- for (int i = 0; i < n; ++i) {
- for (int j = 0; j < m; ++j) {
- if (!bio[i][j] && mp[i][j]=='#') {
- dfs(i, j, n, m, mp, bio);
- ans++;
- }
- }
- }
- cout << ans << endl;
- return 0;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement