Submission #202874

# Submission time Handle Problem Language Result Execution time Memory
202874 2020-02-18T13:53:03 Z alrad Emacs (COCI20_emacs) C++17
50 / 50
5 ms 504 KB
#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 time Memory Grader output
1 Correct 5 ms 376 KB Output is correct
2 Correct 5 ms 504 KB Output is correct
3 Correct 5 ms 376 KB Output is correct
4 Correct 5 ms 376 KB Output is correct
5 Correct 5 ms 376 KB Output is correct
6 Correct 5 ms 376 KB Output is correct
7 Correct 5 ms 504 KB Output is correct
8 Correct 5 ms 376 KB Output is correct
9 Correct 5 ms 504 KB Output is correct
10 Correct 5 ms 376 KB Output is correct