This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include "rainbow.h"
#include <bits/stdc++.h>
using namespace std;
const int MAXN=1000;
int v[MAXN][MAXN];
int marc[MAXN][MAXN];
int dx[]={0, -1, 0, 1};
int dy[]={1, 0, -1, 0};
int n, m;
void dfs(int ox, int oy) {
//printf("%d %d\n", ox, oy);
marc[ox][oy]=2;
for(int i=0; i<4; i++) {
int vx=ox+dx[i]; int vy=oy+dy[i];
//printf(" viz : %d %d\n", vx, vy);
if(vx<=0||vx>n) continue; if(vy<=0||vy>m) continue;
if(marc[vx][vy]!=1||v[vx][vy]) continue;
dfs(vx, vy);
}
}
void init(int R, int C, int sr, int sc, int M, char *S) {
int cx=sr, cy=sc; v[cx][cy]=1; n=R; m=C;
for(int i=0; i<M; i++) {
if(S[i]=='N') cx--;
if(S[i]=='S') cx++;
if(S[i]=='W') cy--;
if(S[i]=='E') cy++;
v[cx][cy]=1;
}
}
int colour(int ar, int ac, int br, int bc) {
for(int i=ar; i<=br; i++) for(int j=ac; j<=bc; j++) marc[i][j]=1;
int resp=0;
for(int i=ar; i<=br; i++) {
for(int j=ac; j<=bc; j++) {
if(marc[i][j]==2||v[i][j]) continue;
dfs(i, j); resp++;
}
}
for(int i=ar; i<=br; i++) for(int j=ac; j<=bc; j++) marc[i][j]=0;
return resp;
return 0;
}
Compilation message (stderr)
rainbow.cpp: In function 'void dfs(int, int)':
rainbow.cpp:18:9: warning: this 'if' clause does not guard... [-Wmisleading-indentation]
if(vx<=0||vx>n) continue; if(vy<=0||vy>m) continue;
^~
rainbow.cpp:18:35: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'if'
if(vx<=0||vx>n) continue; if(vy<=0||vy>m) continue;
^~
# | 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... |