#include <bits/stdc++.h>
#pragma GCC Optimize("Ofast")
using namespace std;
#define fast_cin() ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL)
int depth[4005][4005];
string s[4000];
int main()
{
fast_cin();
int h, w;
cin >> h >> w;
for (int i = 0; i < h; i++)
cin >> s[i];
deque<pair<int, int>> q;
depth[0][0] = 1;
q.push_back({0, 0});
vector<pair<int, int>> dir = {{-1, 0}, {1, 0}, {0, -1}, {0, 1}};
auto inside = [&](int x, int y)
{
return x >= 0 && x < h && y >= 0 && y < w && s[x][y] != '.';
};
int ans = 1;
while (!q.empty())
{
auto [x, y] = q.front();
q.pop_front();
ans = max(ans, depth[x][y]);
for (auto [dx, dy] : dir)
{
int nx = x + dx, ny = y + dy;
if (inside(nx, ny) && depth[nx][ny] == 0)
{
if (s[x][y] == s[nx][ny])
{
depth[nx][ny] = depth[x][y];
q.push_front({nx, ny});
}
else
{
depth[nx][ny] = depth[x][y] + 1;
q.push_back({nx, ny});
}
}
}
}
cout << ans << endl;
}
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |