#include <stdio.h>
int n, map[101][101] = {},mapp[101][101]={}, rain, max = 0, am;
void view(){
printf("\n");
for(int i=0;i<n;i++){
for(int j=0;j<n;j++){
printf("%d ",mapp[i][j]);
}
printf("\n");
}
printf("\n");
}
void DFS(int y,int x){
if(map[y][x] < rain || mapp[y][x] == rain)
return ;
mapp[y][x] = rain;
if(y>0)
DFS(y-1,x);
if(x>0)
DFS(y,x-1);
if(y<n-1)
DFS(y+1,x);
if(x<n-1)
DFS(y,x+1);
}
void main(){
scanf("%d",&n);
for(int i = 0 ; i < n ; i++){
for(int j = 0 ; j < n ; j++){
scanf("%d",&map[i][j]);
}
}
for(rain = 1, am=0; rain <= 100 ; rain++, am=0){
for(int i = 0 ; i < n ; i++){
for(int j = 0 ; j < n ; j++){
if(map[i][j] >= rain && mapp[i][j] != rain){
am++;
DFS(i,j);
}
}
}
if(am>max)
max=am;
}
printf("%d",max);
}
top of page
실제 작동 상태를 확인하려면 라이브 사이트로 이동하세요.
수정: 2023년 10월 28일
DFS 안전 영역
DFS 안전 영역
댓글 0개
좋아요
댓글(0)
bottom of page