Submission

Status:

[PPP-SSSSSSSSSSSSSSSSSSSSS]

Subtask/Task Score:

{0/100}

Score: 0

User: klalnwza007

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

Language: cpp

Time: 0.002 second

Submitted On: 2025-11-05 22:51:18

/*
8 13
0010000100000
0000000111000
0110100000000
0100110010100
0100110011100
0000000000100
0000000111000
0000000110000
*/

#include <bits/stdc++.h>
using namespace std;

int cnt;
int di[] = {0,0,1,-1};
int dj[] = {1,-1,0,0};

int n,m;

vector<vector<bool>> vis;
vector<string> v;

/*
void dfs (int i, int j) {
    vis[i][j] = 1;
    cnt++;

    for (int k=0;k<4;k++) {
        int ni = i + di[k];
        int nj = j + dj[k];
        if (ni >= 0 && ni < n && nj >= 0 && nj < m && !vis[ni][nj] && v[ni][nj] == '1') {
            dfs(ni,nj);
        }
    }
}
*/

void dfs (int i, int j) {
    vis[i][j] = 1;
    //int c = 1;
    cnt++;
    for (int k=0;k<4;k++) {
        int ni = di[k] + i;
        int nj = dj[k] + j;
        if (ni >= 0 && ni < n &&  nj >=0 && nj < m) {
            if (!vis[ni][nj] && v[ni][nj] == '1') {
                dfs(ni,nj);
            }
        }
    }
}

int main () {
    ios_base::sync_with_stdio(0);cin.tie(0);

    int mx=-1;

    cin >> n >> m;
    v.resize(n);
    vis.assign(n,vector<bool> (m,0));

    for (int i=0;i<n;i++) cin >> v[i];

    for (int i=0;i<n;i++) {
        for (int j=0;j<m;j++) {
            if (!vis[i][j] && v[i][j] == '1') {
                cnt = 0;
                dfs(i,j);
                mx = max(mx,cnt);
            }
        }
    }

    cout << mx;
}