#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef vector<int> vi;
typedef vector<ll> vll;
typedef pair<int, int> pii;
typedef pair<ll, ll> pll;
#define ffr(i, s, n) for (int i = s; i < n; i++)
vector<vector<bool>> adj, visited;
void flood_fill(ll i, ll j, ll n, ll m, char color, vector<string> &snow)
{
if (i < 0 || i >= n || j < 0 || j >= m)
return;
if (snow[i][j] == '.' || visited[i][j])
return;
visited[i][j] = 1;
flood_fill(i + 1, j, n, m, color, snow);
flood_fill(i - 1, j, n, m, color, snow);
flood_fill(i, j + 1, n, m, color, snow);
flood_fill(i, j - 1, n, m, color, snow);
}
void solve()
{
ll n, m;
cin >> n >> m;
visited.assign(n, vector<bool>(m));
vector<string> snow(n);
ffr(i, 0, n)
{
cin >> snow[i];
}
ll ans = 0;
ffr(i, 0, n)
{
ffr(j, 0, m)
{
if (!visited[i][j] && snow[i][j] != '.')
{
flood_fill(i, j, n, m, snow[i][j], snow);
ans++;
}
}
}
cout << ans + 1 << "\n";
}
int main()
{
ios::sync_with_stdio(false);
cin.tie(nullptr);
solve();
return 0;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |