Submission #403354

#TimeUsernameProblemLanguageResultExecution timeMemory
403354Haruto810198Land of the Rainbow Gold (APIO17_rainbow)C++17
11 / 100
21 ms716 KiB
#include <iostream> #include "rainbow.h" #define FOR(i,l,r,d) for(int i=(l); i<=(r); i+=(d)) int grid[51][51]; bool vis[51][51]; const int dx[4] = {1,-1,0,0}; const int dy[4] = {0,0,1,-1}; void init(int R, int C, int sr, int sc, int M, char *S) { /// 0=land 1=river FOR(i,1,R,1){ FOR(j,1,C,1){ grid[i][j] = 0; } } grid[sr][sc] = 1; int rptr=sr, cptr=sc; FOR(i,0,M-1,1){ if(S[i]=='E') cptr++; if(S[i]=='W') cptr--; if(S[i]=='N') rptr--; if(S[i]=='S') rptr++; grid[rptr][cptr] = 1; } } void dfs(int ar, int ac, int br, int bc, int cr, int cc){ vis[cr][cc] = 1; FOR(i,0,3,1){ int nr = cr + dx[i]; int nc = cc + dy[i]; if(ar<=nr and nr<=br and ac<=nc and nc<=bc and grid[nr][nc]==0 and vis[nr][nc]==0){ dfs(ar, ac, br, bc, nr, nc); } } } int colour(int ar, int ac, int br, int bc) { FOR(i,ar,br,1){ FOR(j,ac,bc,1){ vis[i][j] = 0; } } int ret = 0; FOR(i,ar,br,1){ FOR(j,ac,bc,1){ if(grid[i][j]==0 and vis[i][j]==0){ dfs(ar, ac, br, bc, i, j); ret++; } } } return ret; }
#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...