Submission

Status:

[PPPPPPPPPPPPPPPPPPPPPPPPP]

Subtask/Task Score:

{100/100}

Score: 100

User: Cmoss9

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

Language: cpp

Time: 0.004 second

Submitted On: 2026-01-04 01:13:04

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

int maxsize = 0;
int n,m;

int dfs(vector<vector<char>> &island, int i , int k) {

    if (i < 0 || i >= n || k < 0 || k >= m || island[i][k] == '0') {
        return 0;
    }

    island[i][k] = '0';

    int size = 1;
    size += dfs(island, i + 1, k);
    size += dfs(island, i - 1, k);
    size += dfs(island, i, k + 1);
    size += dfs(island, i, k - 1);

    return size;

}

int main () {
    ios_base::sync_with_stdio(0); cin.tie(0);
    cin >> n >> m;
    vector<vector<char>> island(n,vector<char>(m));
    for (int i = 0;i<n;i++) {
        for (int k = 0;k<m;k++) {
            cin >> island[i][k];
        }
    }
    for (int i = 0;i<n;i++) {
        for (int k = 0;k<m;k++) {
            if (island[i][k] == '1') {
                int curr = dfs(island,i,k);
                maxsize = max(maxsize,curr);
            }
        }
    }
    cout << maxsize;
}