제출 #202874

#제출 시각아이디문제언어결과실행 시간메모리
202874alradEmacs (COCI20_emacs)C++17
50 / 50
5 ms504 KiB
#include <bits/stdc++.h>

using namespace std;

const int N = 100 + 2;

int n , m;
vector<vector<char> > f(N , vector<char>(N));
vector<vector<bool> > used(N , vector<bool>(N , false));

bool ok(int x , int y) {
   return (0 <= x && x < n && 0 <= y && y < m && !used[x][y] && f[x][y] == '*');
}

void dfs(int x , int y) {
   used[x][y] = true;
   if (ok(x + 1 , y)) {
      dfs(x + 1 , y);
   }
   if (ok(x - 1 , y)) {
      dfs(x - 1 , y);
   }
   if (ok(x , y + 1)) {
      dfs(x , y + 1);
   }
   if (ok(x , y - 1)) {
      dfs(x , y - 1);
   }
}

int main() {
   ios_base :: sync_with_stdio(0);
   cin.tie(0) , cout.tie(0);
   cin >> n >> m;
   for (int i = 0; i < n; i++) {
      for (int j = 0; j < m; j++) {
         cin >> f[i][j];
      }
   }
   int ans = 0;
   for (int i = 0; i < n; i++) {
      for (int j = 0; j < m; j++) {
         if (f[i][j] == '*' && !used[i][j]) {
            ans++;
            dfs(i , j);
         }
      }
   }
   cout << ans << '\n';
   return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...