#include <bits/stdc++.h>
#include "rainbow.h"
#define rep(a,b,c) for(int a=b; a<c; a++)
#define repa(a,b) for(auto a: b)
#define pii pair<int, int>
#define fi first
#define se second
using namespace std;
bool river[55][55]{};
void init(int R, int C, int sr, int sc, int M, char *S){
if(R>50 || C>50) exit(0);
river[sr][sc]=true;
rep(i,0,M){
if(S[i]=='N') sr++;
else if(S[i]=='S') sr--;
else if(S[i]=='W') sc--;
else sc++;
river[sr][sc]=true;
}
}
int colour(int ar, int ac, int br, int bc){
bool vis[55][55]{};
int c=0;
rep(i,ar,br+1){
rep(j,ac,bc+1){
int x=i, y=j;
if(vis[x][y] || river[x][y]) continue;
c++;
queue<pii> q;
q.push({x,y});
while(q.size()){
x=q.front().fi;
y=q.front().se;
q.pop();
if(x+1<=br && !vis[x+1][y] && !river[x+1][y]) vis[x+1][y]=true, q.push({x+1,y});
if(x-1>=ar && !vis[x-1][y] && !river[x-1][y]) vis[x-1][y]=true, q.push({x-1,y});
if(y+1<=bc && !vis[x][y+1] && !river[x][y+1]) vis[x][y+1]=true, q.push({x,y+1});
if(y-1>=ac && !vis[x][y-1] && !river[x][y-1]) vis[x][y-1]=true, q.push({x,y-1});
}
}
}
return c;
}
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Incorrect |
2 ms |
344 KB |
Output isn't correct |
2 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Incorrect |
1 ms |
348 KB |
Output isn't correct |
2 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
0 ms |
348 KB |
Output is correct |
2 |
Incorrect |
1 ms |
452 KB |
Output isn't correct |
3 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Incorrect |
2 ms |
344 KB |
Output isn't correct |
2 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Incorrect |
2 ms |
344 KB |
Output isn't correct |
2 |
Halted |
0 ms |
0 KB |
- |