이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include "rainbow.h"
#include <bits/stdc++.h>
#define y1 YONE
using namespace std;
const int N=55;
int n,m,x1,y1,x2,y2;
bool a[N][N],vis[N][N];
bool ok(int x,int y){
return x>=x1 && x<=x2 && y>=y1 && y<=y2 && !a[x][y] && !vis[x][y];
}
void dfs(int x,int y){
vis[x][y]=1;
if (ok(x+1,y)) dfs(x+1,y);
if (ok(x,y+1)) dfs(x,y+1);
if (ok(x-1,y)) dfs(x-1,y);
if (ok(x,y-1)) dfs(x,y-1);
return;
}
void init(int R, int C, int sr, int sc, int M, char *S) {
n=R,m=C;
a[sr][sc]=1;
for (int i=0;i<M;i++){
if (S[i]=='N') sr--;
if (S[i]=='S') sr++;
if (S[i]=='E') sc++;
if (S[i]=='W') sc--;
a[sr][sc]=1;
}
}
int colour(int ar, int ac, int br, int bc) {
x1=ar,x2=br;
y1=ac,y2=bc;
memset(vis,0,sizeof(vis));
int ans=0;
for (int i=x1;i<=x2;i++){
for (int j=y1;j<=y2;j++){
if (a[i][j] || vis[i][j]) continue;
dfs(i,j);
ans++;
}
}
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... |