제출 #264129

#제출 시각아이디문제언어결과실행 시간메모리
264129define무지개나라 (APIO17_rainbow)C++17
11 / 100
3068 ms6912 KiB
#include "rainbow.h"
#include<bits/stdc++.h>
using namespace std;

bool used[55][55];
void init(int R, int C, int sr, int sc, int M, char *S) {
    string T=string(S);
    used[sr][sc]=true;
    for(char c:T){
        if(c=='N')sr--;
        else if(c=='S')sr++;
        else if(c=='W')sc--;
        else sc++;
        used[sr][sc]=true;
    }
}
bool memo[55][55];
int dx[]={0,1,0,-1},dy[]={1,0,-1,0};
void dfs(int x,int y,int ar,int ac,int br,int bc){
    memo[x][y]=true;
    for(int i=0;i<4;i++){
        int nx=x+dx[i],ny=y+dy[i];
        if(nx<ar||nx>br||ny<ac||ny>bc||used[nx][ny])continue;
        if(!memo[nx][ny])dfs(nx,ny,ar,ac,br,bc);
    }
}
int colour(int ar, int ac, int br, int bc) {
    int ans=0;
    memset(memo,0,sizeof(memo));
    for(int i=ar;i<=br;i++){
        for(int j=ac;j<=bc;j++){
            if(!memo[i][j]&&!used[i][j]){
                ans++;
                dfs(i,j,ar,ac,br,bc);
            }
        }
    }
    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...