Submission

Status:

[PPPP-SSSSSSSSSSSSSSSSSSSS]

Subtask/Task Score:

{0/100}

Score: 0

User: letdown

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

Language: cpp

Time: 0.002 second

Submitted On: 2026-03-12 23:55:14

#include <bits/stdc++.h>
// #include "bits/stdc++.h"

#define int long long
using namespace std;

int dx[] = {1, -1, 0, 0};
int dy[] = {0, 0, 1, -1};

int n, m;
bool a[200][200];

int bfs(int sn, int sm) {
    int ans = 0;
    queue<pair<int, int>> q;
    q.push({sn, sm});
    while (!q.empty()) {
        int r = q.front().first, c = q.front().second;
        q.pop();
        
        ans++;

        for (int i = 0; i < 4; i++) {
            int nr = r + dx[i];
            int nc = c + dy[i];

            if (nr >= 0 && nr < n && nc >= 0 && nc < m) {
                if (a[nr][nc]) {
                    a[r][c] = 0;
                    q.push({nr, nc});
                }
            }
        }
    }
    return ans;
}

signed main() {
    cin.tie(0)->sync_with_stdio(0);

    cin >> n >> m;
    int mx = 0;

    string s;
    for (int i = 0; i < n; i++) {
        cin >> s;
        for (int j = 0; j < m; j++) a[i][j] = (s[j] == '1');
    }

    for (int i = 0; i < n; i++) {
        for (int j = 0; j < m; j++) {
            if (a[i][j]) {
                mx = max(mx, bfs(i, j));
            }
        }
    }

    cout << mx;
}