# | Submission time | Handle | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
403055 | 2021-05-12T17:26:26 Z | BERNARB01 | Land of the Rainbow Gold (APIO17_rainbow) | C++17 | 166 ms | 4488 KB |
#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][N]; 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; 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) { for (int i = 1; i <= C; i++) { sum1[i] = sum1[i - 1] + vis2[1][i]; sum2[i] = sum2[i - 1] + vis2[2][i]; sum12[i] = sum1[i] + sum2[i]; } } } 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 (2 * len - (sum12[r] - sum12[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; }
Compilation message
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 140 ms | 4300 KB | Output is correct |
2 | Correct | 146 ms | 4440 KB | Output is correct |
3 | Correct | 156 ms | 4428 KB | Output is correct |
4 | Correct | 166 ms | 4428 KB | Output is correct |
5 | Correct | 148 ms | 4440 KB | Output is correct |
6 | Correct | 4 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 | 153 ms | 4456 KB | Output is correct |
12 | Correct | 150 ms | 4488 KB | Output is correct |
13 | Correct | 151 ms | 4472 KB | Output is correct |
14 | Correct | 146 ms | 4432 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 | - |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Incorrect | 1 ms | 332 KB | Output isn't correct |
2 | Halted | 0 ms | 0 KB | - |
# | Verdict | Execution time | Memory | 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 | - |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 140 ms | 4300 KB | Output is correct |
2 | Correct | 146 ms | 4440 KB | Output is correct |
3 | Correct | 156 ms | 4428 KB | Output is correct |
4 | Correct | 166 ms | 4428 KB | Output is correct |
5 | Correct | 148 ms | 4440 KB | Output is correct |
6 | Correct | 4 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 | 153 ms | 4456 KB | Output is correct |
12 | Correct | 150 ms | 4488 KB | Output is correct |
13 | Correct | 151 ms | 4472 KB | Output is correct |
14 | Correct | 146 ms | 4432 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 | - |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 140 ms | 4300 KB | Output is correct |
2 | Correct | 146 ms | 4440 KB | Output is correct |
3 | Correct | 156 ms | 4428 KB | Output is correct |
4 | Correct | 166 ms | 4428 KB | Output is correct |
5 | Correct | 148 ms | 4440 KB | Output is correct |
6 | Correct | 4 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 | 153 ms | 4456 KB | Output is correct |
12 | Correct | 150 ms | 4488 KB | Output is correct |
13 | Correct | 151 ms | 4472 KB | Output is correct |
14 | Correct | 146 ms | 4432 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 | - |