Submission #198654

# Submission time Handle Problem Language Result Execution time Memory
198654 2020-01-27T08:37:03 Z alrad Zoo (COCI19_zoo) C++17
0 / 110
6 ms 1528 KB
#include <bits/stdc++.h>

using namespace std;

const int N = 1000 + 2;

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

bool can(int x , int y , char cur) {
   return (1 <= x && x <= n && 1 <= y && y <= m && !used[x][y] && cur == f[x][y]);
}

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

int main() {
   ios_base :: sync_with_stdio(0);
   cin.tie(0) , cout.tie(0);
   cin >> n >> m;
   for (int i = 1; i <= n; i++) {
      for (int j = 1; j <= m; j++) {
         cin >> f[i][j];
      }
   }
   int ans = 0;
   for (int i = 1; i <= n; i++) {
      for (int j = 1; j <= m; j++) {
         if (f[i][j] == '*') {
            continue;
         }
         if (!used[i][j]) {
            ans++;
            dfs(i , j);
         }
      }
   }
   cout << ans << '\n';
   return 0;
}
# Verdict Execution time Memory Grader output
1 Incorrect 6 ms 1528 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 6 ms 1528 KB Output isn't correct
2 Halted 0 ms 0 KB -