Submission

Status:

[PPPPPPPPPPPPPPPPPPPPPPPPP]

Subtask/Task Score:

{100/100}

Score: 100

User: Neozaawwman1

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

Language: cpp

Time: 0.005 second

Submitted On: 2025-12-20 23:36:27

#include <bits/stdc++.h>
using namespace std;
int N,M;
const int ex = 1e3+5;
int grid[ex][ex];
int xx[4]={-1,0,0,1};
int yy[4]={0,-1,1,0};
int mn=0;
queue<pair<int,int>> q;
int BFS(int x1,int y1){
    q.push({x1,y1});
    int ct=0;
    while(!q.empty()){
        int x,y;
        tie(x,y)=q.front();q.pop();
        if(grid[y][x]==0)continue;
        ct++;
        grid[y][x]=0;
        for(int i=0; i<4; i++){
            int nx,ny;
            nx = x+xx[i];
            ny = y+yy[i];
            if(nx<0 || ny<0 || nx>=M || ny>=N)continue;
            if(grid[ny][nx]==0)continue;
            q.push({nx,ny});
        }
    }
    //cout<<ct<<endl;
    //mn=fmax(mn,ct);
    return ct;
}
int main(){
    ios_base::sync_with_stdio(0),cin.tie(0);
    cin>>N>>M;
    for(int i=0;i<N;i++){
    string s;
    cin >> s;
    for(int j=0;j<M;j++){
        grid[i][j] = s[j] - '0';
    }
}
    for(int i=0; i<N; i++){
        for(int j=0; j<M; j++){
            if(grid[i][j]==0)continue;
            int x=BFS(j,i);
            //cout<<x<<endl;
            mn = fmax(x,mn);
        }
    }
    cout<<mn;
    return 0;
}