#include <iostream>
#include <vector>
#include <deque>
#define MAXN 4005
#define MAXV 17000000
int n, m;
std::deque<std::pair<int, int> > bfs;
bool vis[MAXN][MAXN];
int d[MAXN][MAXN];
//std::vector<std::pair<int, bool> > Adj[MAXV];
int mat[MAXN][MAXN];
int main()
{
std::ios::sync_with_stdio(false);
std::cin >> n >> m;
for(int i = 0; i < n; i++)
{
for(int j = 0; j < m; j++)
{
char c;
std::cin >> c;
if(c == 'R')
mat[i][j] = 1;
else if(c == 'F')
mat[i][j] = 2;
else
mat[i][j] = 0;
}
}
bfs.push_front({0, 0});
d[0][0] = 0;
vis[0][0] = true;
int dx[] = {1, 0, -1, 0};
int dy[] = {0, 1, 0, -1};
int answer = 0;
while(!bfs.empty())
{
std::pair<int, int> u = bfs.front();
bfs.pop_front();
int i = u.first;
int j = u.second;
for(int k = 0; k < 4; k++)
{
int p = i + dx[k];
int q = j + dy[k];
if(p < 0 || p >= n || q < 0 || q >= m)
continue;
if(!vis[p][q] && mat[p][q])
{
vis[p][q] = true;
bool type = (mat[p][q] != mat[i][j]);
d[p][q] = d[i][j];
if(type)
{
d[p][q]++;
bfs.push_back({p, q});
}
else
bfs.push_front({p, q});
answer = std::max(answer, d[p][q]);
}
}
}
std::cout << answer+1 << std::endl;
return 0;
}
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
30 ms |
8184 KB |
Output is correct |
2 |
Correct |
2 ms |
504 KB |
Output is correct |
3 |
Correct |
3 ms |
896 KB |
Output is correct |
4 |
Correct |
17 ms |
7680 KB |
Output is correct |
5 |
Correct |
8 ms |
4480 KB |
Output is correct |
6 |
Correct |
3 ms |
512 KB |
Output is correct |
7 |
Correct |
3 ms |
896 KB |
Output is correct |
8 |
Correct |
3 ms |
1152 KB |
Output is correct |
9 |
Correct |
3 ms |
1536 KB |
Output is correct |
10 |
Correct |
10 ms |
3712 KB |
Output is correct |
11 |
Correct |
9 ms |
3072 KB |
Output is correct |
12 |
Correct |
11 ms |
4580 KB |
Output is correct |
13 |
Correct |
11 ms |
4480 KB |
Output is correct |
14 |
Correct |
11 ms |
4448 KB |
Output is correct |
15 |
Correct |
28 ms |
8184 KB |
Output is correct |
16 |
Correct |
24 ms |
8192 KB |
Output is correct |
17 |
Correct |
20 ms |
7928 KB |
Output is correct |
18 |
Correct |
19 ms |
7680 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
49 ms |
46428 KB |
Output is correct |
2 |
Correct |
116 ms |
25076 KB |
Output is correct |
3 |
Correct |
659 ms |
120588 KB |
Output is correct |
4 |
Correct |
180 ms |
51604 KB |
Output is correct |
5 |
Correct |
334 ms |
91912 KB |
Output is correct |
6 |
Correct |
1231 ms |
155524 KB |
Output is correct |
7 |
Correct |
42 ms |
48504 KB |
Output is correct |
8 |
Correct |
39 ms |
46328 KB |
Output is correct |
9 |
Correct |
5 ms |
896 KB |
Output is correct |
10 |
Correct |
4 ms |
512 KB |
Output is correct |
11 |
Correct |
49 ms |
47736 KB |
Output is correct |
12 |
Correct |
5 ms |
2304 KB |
Output is correct |
13 |
Correct |
100 ms |
25080 KB |
Output is correct |
14 |
Correct |
59 ms |
17144 KB |
Output is correct |
15 |
Correct |
60 ms |
20348 KB |
Output is correct |
16 |
Correct |
44 ms |
9592 KB |
Output is correct |
17 |
Correct |
243 ms |
49272 KB |
Output is correct |
18 |
Correct |
194 ms |
55800 KB |
Output is correct |
19 |
Correct |
189 ms |
51788 KB |
Output is correct |
20 |
Correct |
151 ms |
43000 KB |
Output is correct |
21 |
Correct |
363 ms |
92408 KB |
Output is correct |
22 |
Correct |
318 ms |
92024 KB |
Output is correct |
23 |
Correct |
481 ms |
75512 KB |
Output is correct |
24 |
Correct |
380 ms |
89468 KB |
Output is correct |
25 |
Correct |
866 ms |
141816 KB |
Output is correct |
26 |
Correct |
615 ms |
174316 KB |
Output is correct |
27 |
Correct |
954 ms |
176188 KB |
Output is correct |
28 |
Correct |
1271 ms |
155632 KB |
Output is correct |
29 |
Correct |
1244 ms |
153304 KB |
Output is correct |
30 |
Correct |
1174 ms |
157936 KB |
Output is correct |
31 |
Correct |
940 ms |
113784 KB |
Output is correct |
32 |
Correct |
909 ms |
162700 KB |
Output is correct |