Submission

Status:

[PPP-SSSSSSSSSSSSSSSSSSSSS]

Subtask/Task Score:

{0/100}

Score: 0

User: kakcode

Problemset: เกาะที่ใหญ่ที่สุด

Language: cpp

Time: 0.003 second

Submitted On: 2025-11-27 09:24:54

#include <bits/stdc++.h>
using namespace std;
int n,m;
int dx[] = {0,0,-1,1};
int dy[] = {1,-1,0,0};
bool visited[200][200];
bool arr[200][200];
int mx = -1;
int cnt;
void dfs(int x,int y){
    visited[y][x] = 1;
    cnt++;
    for(int i=0;i<4;i++){
        int nx = x + dx[i];
        int ny = y + dy[i];
        if(nx < 0 || nx >= m || ny < 0 || ny >= n || !arr[ny][nx] || visited[ny][nx])continue;
        dfs(nx,ny);
    }
}
int main() {
    cin >> n >> m;
    for(int i=0;i<n;i++){
        for(int j=0;j<m;j++){
            char a;
            cin >> a;
            if(a == '1')arr[i][j] = 1;
            else arr[i][j] = 0;
        }
    }
    for(int i=0;i<n;i++){
        for(int j=0;j<m;j++){
            //cout << arr[i][j] << ' ';
            if(arr[i][j] && !visited[i][j]){
                cnt = 0;
                dfs(j,i);
                mx = max(mx,cnt);
            }
        }
        //cout << '\n';
    }
    cout << mx;
}