Submission #983495

#TimeUsernameProblemLanguageResultExecution timeMemory
983495AbitoLand of the Rainbow Gold (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...