Submission
Status:
[-SSSSSSSSSSSSSSSSSSSSSSSS]
Subtask/Task Score:
{0/100}
Score: 0
User: Kidmaiok
Problemset: เกาะที่ใหญ่ที่สุด
Language: cpp
Time: 0.002 second
Submitted On: 2026-10-14 15:54:36
#include<bits/stdc++.h>
using namespace std;
int x,y,area=0;
int grid[505][505];
bool visited[505][505];
int DFS(int r, int c){
if(r < 0 || c < 0 || r >= x || c >= y || visited[r][c] == true || grid[r][c] == 0) return 0;
visited[r][c] = true;
int size = 1;
size = size + DFS(r-1,c);
size = size + DFS(r+1,c);
size = size + DFS(r,c+1);
size = size + DFS(r,c-1);
return size;
}
int main(){
cin >> x >> y;
for(int i =0 ; i<x; i++){
for(int j =0; j < y; j++){
int point;
cin >> point;
grid[i][j] = point;
}
}
for(int i =0 ; i<x; i++){
for(int j =0; j < y; j++){
if(grid[i][j] == 1 && !visited[i][j]){
DFS(i,j);
area++;
}
}
}
cout << area;
}