//
#include <bits/stdc++.h>
using namespace std;
using ll = long long;
using pi = pair<int, int>;
void solve(void){
int n, m;
cin >> n >> m;
vector<string> g(n);
for(auto& s : g) cin >> s;
queue<pi> q, q2;
q.emplace(0, 0);
int ans = 0;
char cur = g[0][0];
char other = cur == 'F' ? 'R' : 'F';
auto out = [&](int i, int j) -> bool {
return i < 0 || j < 0 || i >= n || j >= m;
};
const int di[] = {-1, 1, 0, 0};
const int dj[] = {0, 0, -1, 1};
while(!q.empty()) {
ans++;
while(!q.empty()) {
auto [i, j] = q.front(); q.pop();
for(int k = 0 ; k < 4 ; k++) {
int ni = i + di[k];
int nj = j + dj[k];
if(!out(ni, nj)) {
if(g[ni][nj] == cur) {
q.emplace(ni, nj);
} else if(g[ni][nj] == other) {
q2.emplace(ni, nj);
}
g[ni][nj] = '$';
}
}
}
swap(q, q2);
swap(cur, other);
}
cout << ans << "\n";
}
int main(void) {
ios_base::sync_with_stdio(false);
cin.tie(NULL);
solve();
return 0;
}
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |