#include "bits/stdc++.h"
#include "rainbow.h"
// #include "grader.cpp"
using namespace std;
const int N = 1e2 + 5;
int a[N][N], vis[N][N], n, m, n1, n2, m1, m2;
bool check(int i, int j) {
return (!vis[i][j] and !a[i][j] and i <= n1 and i >= n2 and j <= m1 and j >= m2);
}
void dfs(int i, int j) {
vis[i][j] = true;
if(check(i+1, j)) dfs(i+1, j);
if(check(i-1, j)) dfs(i-1, j);
if(check(i, j+1)) dfs(i, j+1);
if(check(i, j-1)) dfs(i, j-1);
}
void init(int r, int c, int sr, int sc, int M, char *s) {
a[sr][sc] = true;
n = r, m = c;
for(int i = 0; i < M; i++) {
if(s[i] == 'N') sr--;
if(s[i] == 'S') sr++;
if(s[i] == 'W') sc--;
if(s[i] == 'E') sc++;
assert(!a[sr][sc]);
a[sr][sc] = true;
}
}
int colour(int ar, int ac, int br, int bc) {
memset(vis, 0, sizeof vis);
int ans = 0;
n1 = br, m1 = bc, n2 = ar, m2 = ac;
for(int i = ar; i <= br; i++) {
for(int j = ac; j <= bc; j++) {
if(vis[i][j] or a[i][j]) continue;
ans++;
dfs(i, j);
}
}
return ans;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |