48pts求调

P1162 填涂颜色

Czy54188 @ 2024-09-07 13:51:45

#include <stdio.h>

int n,Map[30][30],iq[5]={0,1,-1,0,0},aq[5]={0,0,0,1,-1};
void dfs(int x,int y){
    if(Map[x][y]) return ;
    for(int i=0;i<5;i++){
        int _=x+iq[i],__=y+aq[i];
        if(_<0 || _>=n || __<0 || __>=n || Map[_][__]==1) continue;
        Map[_][__]=2;
        dfs(_,__);
    }
}

main(){
    scanf("%d",&n);
    for(int i=0;i<n;i++) for(int j=0;j<n;j++) scanf("%d",&Map[i][j]);
    for(int i=0;i<n;i++){
        dfs(0,i);
        dfs(n-1,i);
        dfs(i,0);
        dfs(i,n-1);
    }
    for(int i=0;i<n;i++){
        for(int j=0;j<n;j++){
            if(Map[i][j]==0) printf("2 ");
            if(Map[i][j]==1) printf("1 ");
            if(Map[i][j]==2) printf("0 ");
        }
        puts("");
    }
    return 0;
}

|