#include <bits/stdc++.h>
using namespace std;
using ll = long long;
int a[3030][3030];
int b[3030][3030];
char c[3030][3030];
bool p[3000001], vis[3000001];
vector<int> adj[3000001];
const int di[4] = { 1,0,-1,0 }, dj[4] = { 0,1,0,-1 };
int main() {
cin.tie(nullptr)->sync_with_stdio(false);
int n, m;
cin >> n >> m;
int cnt = 0;
for (int i = 1;i <= n;i++) {
for (int j = 1;j <= m;j++) {
cin >> c[i][j];
if (i >= 3) {
if (c[i][j] == 'W' && c[i - 1][j] == 'G' && c[i - 2][j] == 'R') {
a[i][j] = a[i - 1][j] = a[i - 2][j] = ++cnt;
p[cnt] = 0;
}
}
if (j >= 3) {
if (c[i][j] == 'W' && c[i][j - 1] == 'G' && c[i][j - 2] == 'R') {
b[i][j] = b[i][j - 1] = b[i][j - 2] = ++cnt;
p[cnt] = 1;
}
}
}
}
// // debug
// for (int i = 1;i <= n;i++) {
// for (int j = 1;j <= m;j++) {
// cout << a[i][j] << ' ';
// }
// cout << '\n';
// }
// for (int i = 1;i <= n;i++) {
// for (int j = 1;j <= m;j++) {
// cout << b[i][j] << ' ';
// }
// cout << '\n';
// }
// // ----------
int ans = 0;
for (int i = 1;i <= n;i++) {
for (int j = 1;j <= m;j++) {
if (a[i][j] && b[i][j]) {
adj[a[i][j]].push_back(b[i][j]);
adj[b[i][j]].push_back(a[i][j]);
}
}
}
for (int i = 1;i <= cnt;i++) {
if (vis[i]) continue;
int c1 = 0, c2 = 0;
queue<int> q;
q.push(i);
vis[i] = 1;
while (!q.empty()) {
int v = q.front();
q.pop();
if (p[v]) c1++;
else c2++;
for (auto& x : adj[v]) {
if (vis[x]) continue;
vis[x] = 1;
q.push(x);
}
}
ans += max(c1, c2);
}
cout << ans;
return 0;
}
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
16 ms |
74320 KB |
Output is correct |
2 |
Correct |
15 ms |
74332 KB |
Output is correct |
3 |
Correct |
16 ms |
74332 KB |
Output is correct |
4 |
Correct |
15 ms |
74328 KB |
Output is correct |
5 |
Correct |
15 ms |
74328 KB |
Output is correct |
6 |
Correct |
17 ms |
80472 KB |
Output is correct |
7 |
Correct |
16 ms |
80472 KB |
Output is correct |
8 |
Correct |
16 ms |
80616 KB |
Output is correct |
9 |
Correct |
17 ms |
80472 KB |
Output is correct |
10 |
Correct |
16 ms |
78424 KB |
Output is correct |
11 |
Correct |
16 ms |
80476 KB |
Output is correct |
12 |
Correct |
16 ms |
80476 KB |
Output is correct |
13 |
Correct |
16 ms |
80472 KB |
Output is correct |
14 |
Correct |
18 ms |
78424 KB |
Output is correct |
15 |
Correct |
16 ms |
78428 KB |
Output is correct |
16 |
Correct |
16 ms |
78424 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
16 ms |
74320 KB |
Output is correct |
2 |
Correct |
15 ms |
74332 KB |
Output is correct |
3 |
Correct |
16 ms |
74332 KB |
Output is correct |
4 |
Correct |
15 ms |
74328 KB |
Output is correct |
5 |
Correct |
15 ms |
74328 KB |
Output is correct |
6 |
Correct |
17 ms |
80472 KB |
Output is correct |
7 |
Correct |
16 ms |
80472 KB |
Output is correct |
8 |
Correct |
16 ms |
80616 KB |
Output is correct |
9 |
Correct |
17 ms |
80472 KB |
Output is correct |
10 |
Correct |
16 ms |
78424 KB |
Output is correct |
11 |
Correct |
16 ms |
80476 KB |
Output is correct |
12 |
Correct |
16 ms |
80476 KB |
Output is correct |
13 |
Correct |
16 ms |
80472 KB |
Output is correct |
14 |
Correct |
18 ms |
78424 KB |
Output is correct |
15 |
Correct |
16 ms |
78428 KB |
Output is correct |
16 |
Correct |
16 ms |
78424 KB |
Output is correct |
17 |
Correct |
16 ms |
80472 KB |
Output is correct |
18 |
Correct |
17 ms |
80472 KB |
Output is correct |
19 |
Correct |
17 ms |
80472 KB |
Output is correct |
20 |
Correct |
16 ms |
80472 KB |
Output is correct |
21 |
Correct |
16 ms |
80472 KB |
Output is correct |
22 |
Correct |
16 ms |
80584 KB |
Output is correct |
23 |
Correct |
16 ms |
80612 KB |
Output is correct |
24 |
Correct |
16 ms |
78424 KB |
Output is correct |
25 |
Correct |
16 ms |
74328 KB |
Output is correct |
26 |
Correct |
15 ms |
74328 KB |
Output is correct |
27 |
Correct |
16 ms |
80472 KB |
Output is correct |
28 |
Correct |
17 ms |
80472 KB |
Output is correct |
29 |
Correct |
16 ms |
80592 KB |
Output is correct |
30 |
Correct |
16 ms |
78428 KB |
Output is correct |
31 |
Correct |
15 ms |
78424 KB |
Output is correct |
32 |
Correct |
16 ms |
78424 KB |
Output is correct |
33 |
Correct |
16 ms |
80472 KB |
Output is correct |
34 |
Incorrect |
16 ms |
80476 KB |
Output isn't correct |
35 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
16 ms |
74320 KB |
Output is correct |
2 |
Correct |
15 ms |
74332 KB |
Output is correct |
3 |
Correct |
16 ms |
74332 KB |
Output is correct |
4 |
Correct |
15 ms |
74328 KB |
Output is correct |
5 |
Correct |
15 ms |
74328 KB |
Output is correct |
6 |
Correct |
17 ms |
80472 KB |
Output is correct |
7 |
Correct |
16 ms |
80472 KB |
Output is correct |
8 |
Correct |
16 ms |
80616 KB |
Output is correct |
9 |
Correct |
17 ms |
80472 KB |
Output is correct |
10 |
Correct |
16 ms |
78424 KB |
Output is correct |
11 |
Correct |
16 ms |
80476 KB |
Output is correct |
12 |
Correct |
16 ms |
80476 KB |
Output is correct |
13 |
Correct |
16 ms |
80472 KB |
Output is correct |
14 |
Correct |
18 ms |
78424 KB |
Output is correct |
15 |
Correct |
16 ms |
78428 KB |
Output is correct |
16 |
Correct |
16 ms |
78424 KB |
Output is correct |
17 |
Correct |
16 ms |
80472 KB |
Output is correct |
18 |
Correct |
17 ms |
80472 KB |
Output is correct |
19 |
Correct |
17 ms |
80472 KB |
Output is correct |
20 |
Correct |
16 ms |
80472 KB |
Output is correct |
21 |
Correct |
16 ms |
80472 KB |
Output is correct |
22 |
Correct |
16 ms |
80584 KB |
Output is correct |
23 |
Correct |
16 ms |
80612 KB |
Output is correct |
24 |
Correct |
16 ms |
78424 KB |
Output is correct |
25 |
Correct |
16 ms |
74328 KB |
Output is correct |
26 |
Correct |
15 ms |
74328 KB |
Output is correct |
27 |
Correct |
16 ms |
80472 KB |
Output is correct |
28 |
Correct |
17 ms |
80472 KB |
Output is correct |
29 |
Correct |
16 ms |
80592 KB |
Output is correct |
30 |
Correct |
16 ms |
78428 KB |
Output is correct |
31 |
Correct |
15 ms |
78424 KB |
Output is correct |
32 |
Correct |
16 ms |
78424 KB |
Output is correct |
33 |
Correct |
16 ms |
80472 KB |
Output is correct |
34 |
Incorrect |
16 ms |
80476 KB |
Output isn't correct |
35 |
Halted |
0 ms |
0 KB |
- |