#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef pair<ll, ll> pii;
typedef vector<ll> vi;
typedef vector<vi> matrix;
#define rep(i, a, b) for(ll i = a; i < b; i++)
#define down(i, b, a) for(ll i = b - 1; i >= a; i--)
int main(){
ios_base::sync_with_stdio(false);
cin.tie(NULL);
ll h, w;
cin >> h >> w;
vector<vector<char>> grid(h, vector<char>(w));
rep(i, 0, h){
rep(j, 0, w){
cin >> grid[i][j];
}
}
matrix visit(h, vi(w, 0));
queue<pii> next;
next.push({0, 0});
while(!next.empty()){
pii top = next.front();
next.pop();
ll x = top.first, y = top.second;
if(visit[x][y]) continue;
visit[x][y] = 1;
if(x != h - 1){
if(grid[x + 1][y] == grid[x][y]) next.push({x + 1, y});
}
if(y != w - 1){
if(grid[x][y + 1] == grid[x][y]) next.push({x, y + 1});
}
}
ll tot = 1;
rep(i, 0, h){
rep(j, 0, w){
if(grid[i][j] == grid[0][0] && !visit[i][j]){
tot++;
break;
}
}
if(tot > 1) break;
}
ll prev = tot;
rep(i, 0, h){
rep(j, 0, w){
if(grid[i][j] != '.' && grid[i][j] != grid[0][0]){
tot++;
break;
}
}
if(tot != prev) break;
}
cout << tot << endl;
}
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |