#include "rainbow.h"
#include <bits/stdc++.h>
using namespace std;
const int N = 1002;
const int maxN = (int) 2e5 + 9;
int sub = 1;
int a[N][N], vis[N][N], done[N][N], u, l, d, r, sum1[maxN], sum2[maxN], sum12[maxN], vis2[2][maxN];
array<int, 4> di = {0, 0, 1, -1};
array<int, 4> dj = {1, -1, 0, 0};
bool valid(int i, int j) {
return (u <= i && i <= d && l <= j && j <= r && !vis[i][j] && !done[i][j]);
}
void dfs(int i, int j) {
done[i][j] = 1;
for (int k = 0; k < 4; k++) {
int ni = i + di[k];
int nj = j + dj[k];
if (valid(ni, nj)) {
dfs(ni, nj);
}
}
}
void init(int R, int C, int sr, int sc, int M, char *S) {
if (R == 2) {
sub = 2;
}
u = 1; d = R;
l = 1; r = C;
if (sub == 2) {
vis2[sr][sc] = 1;
} else {
vis[sr][sc] = 1;
}
for (int i = 0; i < M; i++) {
if (S[i] == 'N') {
sr--;
} else if (S[i] == 'S') {
sr++;
} else if (S[i] == 'E') {
sc++;
} else {
sc--;
}
if (sub == 2) {
vis2[sr][sc] = 1;
} else {
vis[sr][sc] = 1;
}
}
if (sub == 2) {
vis2[0][0] = vis2[1][0] = 1;
for (int i = 1; i <= C; i++) {
sum1[i] = sum1[i - 1] + vis2[0][i];
sum2[i] = sum2[i - 1] + vis2[1][i];
sum12[i] = sum12[i - 1] + ((!vis2[0][i] || !vis2[1][i]) && (vis2[0][i - 1] && vis2[1][i - 1]));
}
}
}
int colour(int ar, int ac, int br, int bc) {
u = ar; d = br;
l = ac; r = bc;
int ans = 0;
if (sub == 2) {
int len = (r - l + 1);
if (u == d) {
if (d == 1) {
return len - (sum1[r] - sum1[l - 1]);
} else {
return len - (sum2[r] - sum2[l - 1]);
}
} else {
return (sum12[r] - sum12[l - 1]) + ((!vis2[0][l] || !vis2[1][l]) && (vis2[0][l - 1] && vis2[1][l - 1]));
}
}
for (int i = u; i <= d; i++) {
for (int j = l; j <= r; j++) {
if (!vis[i][j] && !done[i][j]) {
dfs(i, j);
ans++;
}
}
}
memset(done, 0, sizeof done);
return ans;
}
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
146 ms |
4300 KB |
Output is correct |
2 |
Correct |
151 ms |
4436 KB |
Output is correct |
3 |
Correct |
173 ms |
4556 KB |
Output is correct |
4 |
Correct |
159 ms |
4428 KB |
Output is correct |
5 |
Correct |
147 ms |
4428 KB |
Output is correct |
6 |
Correct |
3 ms |
4172 KB |
Output is correct |
7 |
Correct |
4 ms |
4172 KB |
Output is correct |
8 |
Correct |
3 ms |
4172 KB |
Output is correct |
9 |
Correct |
3 ms |
4172 KB |
Output is correct |
10 |
Correct |
4 ms |
4172 KB |
Output is correct |
11 |
Correct |
176 ms |
4460 KB |
Output is correct |
12 |
Correct |
158 ms |
4476 KB |
Output is correct |
13 |
Correct |
155 ms |
4476 KB |
Output is correct |
14 |
Correct |
149 ms |
4428 KB |
Output is correct |
15 |
Correct |
3 ms |
4172 KB |
Output is correct |
16 |
Incorrect |
1 ms |
332 KB |
Output isn't correct |
17 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Incorrect |
1 ms |
332 KB |
Output isn't correct |
2 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
3 ms |
4172 KB |
Output is correct |
2 |
Runtime error |
2 ms |
588 KB |
Execution killed with signal 11 |
3 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
146 ms |
4300 KB |
Output is correct |
2 |
Correct |
151 ms |
4436 KB |
Output is correct |
3 |
Correct |
173 ms |
4556 KB |
Output is correct |
4 |
Correct |
159 ms |
4428 KB |
Output is correct |
5 |
Correct |
147 ms |
4428 KB |
Output is correct |
6 |
Correct |
3 ms |
4172 KB |
Output is correct |
7 |
Correct |
4 ms |
4172 KB |
Output is correct |
8 |
Correct |
3 ms |
4172 KB |
Output is correct |
9 |
Correct |
3 ms |
4172 KB |
Output is correct |
10 |
Correct |
4 ms |
4172 KB |
Output is correct |
11 |
Correct |
176 ms |
4460 KB |
Output is correct |
12 |
Correct |
158 ms |
4476 KB |
Output is correct |
13 |
Correct |
155 ms |
4476 KB |
Output is correct |
14 |
Correct |
149 ms |
4428 KB |
Output is correct |
15 |
Correct |
3 ms |
4172 KB |
Output is correct |
16 |
Incorrect |
1 ms |
332 KB |
Output isn't correct |
17 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
146 ms |
4300 KB |
Output is correct |
2 |
Correct |
151 ms |
4436 KB |
Output is correct |
3 |
Correct |
173 ms |
4556 KB |
Output is correct |
4 |
Correct |
159 ms |
4428 KB |
Output is correct |
5 |
Correct |
147 ms |
4428 KB |
Output is correct |
6 |
Correct |
3 ms |
4172 KB |
Output is correct |
7 |
Correct |
4 ms |
4172 KB |
Output is correct |
8 |
Correct |
3 ms |
4172 KB |
Output is correct |
9 |
Correct |
3 ms |
4172 KB |
Output is correct |
10 |
Correct |
4 ms |
4172 KB |
Output is correct |
11 |
Correct |
176 ms |
4460 KB |
Output is correct |
12 |
Correct |
158 ms |
4476 KB |
Output is correct |
13 |
Correct |
155 ms |
4476 KB |
Output is correct |
14 |
Correct |
149 ms |
4428 KB |
Output is correct |
15 |
Correct |
3 ms |
4172 KB |
Output is correct |
16 |
Incorrect |
1 ms |
332 KB |
Output isn't correct |
17 |
Halted |
0 ms |
0 KB |
- |