제출 #449494

#제출 시각아이디문제언어결과실행 시간메모리
449494fuad27Tracks in the Snow (BOI13_tracks)C++14
15.52 / 100
2099 ms601388 KiB
#include<bits/stdc++.h>
using namespace std;
int h, w, ans = 0;
vector<vector<char>> v;
vector<vector<bool>> visited(h, vector<bool> (w, 0));
void dfs(vector<vector<char>> &v, int i, int j, char k) {
	if(i < 0 or j < 0  or i >= h or j >=w or v[i][j] == '.' or (v[i][j] != '#' and v[i][j] != k) or visited[i][j])return;
	else {
		v[i][j] = '#';
		visited[i][j] = true;
		dfs(v, i+1, j, k);
		dfs(v, i-1, j, k);
		dfs(v, i, j+1, k);
		dfs(v, i, j-1, k);	
	}
}
int main () {
	cin >> h >> w;
	v.resize(h, vector<char> (w));
	for(int i = 0;i<h;i++) {
		for(int j = 0;j<w;j++) {
			cin >> v[i][j];
		}
	}
	for(int i = 0;i<h;i++) {
		for(int j = 0;j<w;j++) {
			if(v[i][j] != '#' and v[i][j] != '.') {
				visited.assign(h, vector<bool> (w, 0));
				dfs(v, i, j, v[i][j]);
				ans++;
			}
		}
	}
	cout<<ans<<endl;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...