제출 #983495

#제출 시각아이디문제언어결과실행 시간메모리
983495Abito무지개나라 (APIO17_rainbow)C++17
11 / 100
3063 ms4368 KiB
#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 timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...