Submission #948901

#TimeUsernameProblemLanguageResultExecution timeMemory
948901vjudge1Land of the Rainbow Gold (APIO17_rainbow)C++17
11 / 100
12 ms604 KiB
#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}); vis[x][y]=true; 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; }
#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...