Submission

Status:

[PPP-SSSSSSSSSSSSSSSSSSSSS]

Subtask/Task Score:

{0/100}

Score: 0

User: Quaoar

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

Language: cpp

Time: 0.002 second

Submitted On: 2026-03-11 20:42:00

#include <bits/stdc++.h>
using namespace std;
int cnt;
void re(int x , int y , vector<vector<int>> &grid){
    if (grid[x][y] == 0 || grid[x][y] == -1) return;
    int n = grid.size();
    int m = grid[0].size();
    grid[x][y] = -1;

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

    for (int i = 0 ; i < 4 ; i++){
        int nx = x + dx[i];
        int ny = y + dy[i];

        if (nx < 0 || nx >= n || ny < 0 || ny >= m) continue;

        re(nx,ny,grid);
    }
    cnt++;
}

int main(){
    int n , m;
    cin >> n >> m;
    vector<vector<int>> grid(n , vector<int> (m));
    for (int i = 0 ; i < n ; i++){
        string a;
        cin >> a;
        for (int j = 0 ; j < m ; j++){
            grid[i][j] = a[j] - '0';
        }
    }
    int mx = -1;
    for (int i = 0 ; i < n ; i++){
        for (int j = 0 ; j < m ; j++){
            if (grid[i][j] == 1){
                cnt = 0;
                re(i,j,grid);
                mx = max(mx , cnt);
            }
        }
    }
    cout << mx;


    return 0;
}