Submission #300033

#TimeUsernameProblemLanguageResultExecution timeMemory
300033ryuku1110Emacs (COCI20_emacs)C++14
50 / 50
2 ms896 KiB
#include <bits/stdc++.h>
#define pb push_back
#define fi first
#define se second
using namespace std;
typedef long long ll;
int n, m, cnt = 0;
char x[101][101];
vector < pair<int, int > > adj[101][101];
bool visit[101][101];

void dfs(int x, int y) {
    visit[x][y] = true;   
    for (auto v : adj[x][y]) {
        if (visit[v.fi][v.se]) continue;
        dfs(v.fi, v.se);
    }
}

int main() {
    //freopen(".INP", "r", stdin);
    //freopen(".OUT", "w", stdout);
    ios_base::sync_with_stdio(false);
    cin.tie(NULL); cout.tie(NULL);
    cin >> n >> m;
    for (int i = 1; i <= n; ++ i) {
        for (int j = 1; j <= m; ++ j) {
            cin >> x[i][j];
            if (x[i][j] == '*') {
                if (x[i-1][j] == '*') {
                    adj[i][j].pb({i-1, j});
                    adj[i-1][j].pb({i, j});
                }
                if (x[i][j-1] == '*') {
                    adj[i][j].pb({i, j-1});
                    adj[i][j-1].pb({i, j});
                }
            }
        }
    }
    for (int i = 1; i <= n; ++ i) {
        for (int j = 1; j <= m; ++ j) {
            if (x[i][j] == '*' && visit[i][j] == false) {
                ++ cnt;
                dfs(i, j);
            }
        }
    }
    cout << cnt;
    return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...