Submission #198654

#TimeUsernameProblemLanguageResultExecution timeMemory
198654alradZoo (COCI19_zoo)C++17
0 / 110
6 ms1528 KiB
#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 timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...