#include <iostream>
#include <vector>
using namespace std;
int rows, cols;
vector<string> grid;
vector<vector<bool>> visited;
void dfs(int i, int j, char type) {
if (i < 0 || i >= rows || j < 0 || j >= cols) return;
if (visited[i][j] || grid[i][j] != type) return;
visited[i][j] = true;
dfs(i+1, j, type);
dfs(i-1, j, type);
dfs(i, j+1, type);
dfs(i, j-1, type);
}
int main() {
cin >> rows >> cols;
grid.resize(rows);
visited.assign(rows, vector<bool>(cols, false));
for (int i = 0; i < rows; i++) {
cin >> grid[i];
}
int count = 0;
for (int i = 0; i < rows; i++) {
for (int j = 0; j < cols; j++) {
if (grid[i][j] != '.' && !visited[i][j]) {
count++;
dfs(i, j, grid[i][j]);
}
}
}
cout << count << endl;
return 0;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |