Submission #904448

#TimeUsernameProblemLanguageResultExecution timeMemory
904448vjudge1Land of the Rainbow Gold (APIO17_rainbow)C++17
11 / 100
3046 ms8872 KiB

bool was[1001][1001];
bool c[1001][1001];
void dfs(int x,int y,int lx,int ly,int rx,int ry){
    if(x>=lx and x<=rx and y>=ly and y<=ry and !c[x][y] and !was[x][y]){
        if(lx==1 and ly==2 and rx==5 and ry==3){
            // cout<<x<<' '<<y<<endl;
        }
        c[x][y]=1;
        dfs(x-1,y,lx,ly,rx,ry);
        dfs(x+1,y,lx,ly,rx,ry);
        dfs(x,y-1,lx,ly,rx,ry);
        dfs(x,y+1,lx,ly,rx,ry);
    }
}
void init(int r,int c,int sr,int sc,int m,char* s){
    int px=sr,py=sc;
    was[px][py]=1;
    for(int i=0;i<m;i++){
        char u=s[i];
        if(u=='S'){
            px++;
        }else if(u=='N'){
            px--;
        }else if(u=='E'){
            py++;
        }else{
            py--;
        }
        // cout<<px<<' '<<py<<endl;
        was[px][py]=1;
    }
}
int colour(int lx,int ly,int rx,int ry){
    for(int i=1;i<=100;i++){
        for(int j=1;j<=100;j++){
            c[i][j]=0;
        }
    }
    int cnt=0;
    for(int i=lx;i<=rx;i++){
        for(int j=ly;j<=ry;j++){
            if(i==3 and j==2){
            }
            if(!c[i][j] and !was[i][j]){
                dfs(i,j,lx,ly,rx,ry);
                cnt++;
            }
        }
    }
    return cnt;
}
#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...