제출 #1324547

#제출 시각아이디문제언어결과실행 시간메모리
1324547aaaaaaaaZoo (COCI19_zoo)C++20
0 / 110
0 ms332 KiB
#include <bits/stdc++.h>
using namespace std;
#define int long long

const int mxN = 1005;
int vis[mxN][mxN], n, m, ans = 0;
char grid[mxN][mxN];

void dfs(int i, int j, char st){
	if(i >= n || j >= m || i < 0 || j < 0 || grid[i][j] != st || vis[i][j]) return;
	vis[i][j] = 1;
	dfs(i + 1, j, st);
	dfs(i - 1, j, st);
	dfs(i, j - 1, st);
	dfs(i, j + 1, st);
}

signed main(){
    ios_base::sync_with_stdio(0);
    cin.tie(nullptr); cout.tie(nullptr);
    
		cin >> n >> m;

		for(int i = 0; i < n; ++i){
			string str;
			cin >> str;
			for(int j = 0; j < m; ++j){
				grid[i][j] = str[j];
			}
		}

		for(int i = 0; i < n; ++i){
			for(int j = 0; j < m; ++j){
				if(grid[i][j] != '*' && !vis[i][j]){
					dfs(i, j, grid[i][j]);
					ans += 1;
				}
			}
		}

		cout << ans << "\n";


    return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...