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;
}