#include "bits/stdc++.h"
#include "rainbow.h"
using namespace std;
#define ff first
#define ss second
#define all(v) v.begin(), v.end()
#define ll long long
#define pb push_back
#define pii pair<int, int>
#define pli pair<ll, int>
#define pll pair<ll, ll>
#define tr(i, c) for(auto i = c.begin(); i != c.end(); ++i)
#define wr puts("----------------")
template<class T>bool umin(T& a,T b){if(a>b){a=b;return 1;}return 0;}
template<class T>bool umax(T& a,T b){if(a<b){a=b;return 1;}return 0;}
const int N = 55;
bool v[N][N], vis[N][N];
int n, n1, m1, m, dx[]={1, -1, 0, 0}, dy[]={0, 0, 1, -1};
bool is(int x, int y){
return (x>=n and x<=n1 and y>=m and y<=m1 and !v[x][y] and !vis[x][y]);
}
void dfs(int x, int y){
v[x][y]=1;
for(int ad = 0; ad < 4; ++ad)
if(is(x+dx[ad], y+dy[ad]))
v[x+dx[ad]][y+dy[ad]]=1;
}
void init(int r, int c, int sr, int sc, int M, char *s){
vis[sr][sc]=1;
// n=r, m=c;
for(int i = 0; i < M; ++i){
if(s[i] == 'N')
sr--;
if(s[i] == 'E')
sc++;
if(s[i] == 'W')
sc--;
if(s[i] == 'S')
sr++;
vis[sr][sc]=1;
}
}
int colour(int ar, int ac, int br, int bc){
n=ar, n1=br, m=ac, m1=bc;
memset(v, 0, sizeof v);
int ret=0;
for(int i = ar; i <= br; ++i)
for(int j = ac; j <= bc; ++j)
if(!v[i][j] and !vis[i][j]){
ret++;
dfs(i, j);
}
return ret;
}
# | 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... |