#include <iostream>
#include <vector>
#include <deque>
#include <string>
#include <algorithm>
using namespace std;
int main() {
ios_base::sync_with_stdio(0);
cin.tie(0);
int h, w;
if (!(cin >> h >> w)) return 0;
vector<string> a(h);
for (int i = 0; i < h; i++) cin >> a[i];
vector<vector<int>> d(h, vector<int>(w, 0));
deque<pair<int, int>> q;
q.push_back({0, 0});
d[0][0] = 1;
int m = 1;
int x[] = {1, -1, 0, 0};
int y[] = {0, 0, 1, -1};
while (!q.empty()) {
pair<int, int> p = q.front();
q.pop_front();
int r = p.first;
int c = p.second;
if (d[r][c] > m) m = d[r][c];
for (int i = 0; i < 4; i++) {
int u = r + x[i];
int v = c + y[i];
if (u >= 0 && u < h && v >= 0 && v < w && a[u][v] != '.' && d[u][v] == 0) {
if (a[u][v] == a[r][c]) {
d[u][v] = d[r][c];
q.push_front({u, v});
} else {
d[u][v] = d[r][c] + 1;
q.push_back({u, v});
}
}
}
}
cout << m << endl;
return 0;
}
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |