Submission

Status:

[PPP-SSSSSSSSSSSSSSSSSSSSS]

Subtask/Task Score:

{0/100}

Score: 0

User: SparkPun

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

Language: cpp

Time: 0.002 second

Submitted On: 2026-03-14 18:21:05

#include <bits/stdc++.h>
using namespace std;
const int N=180;
string arr[N];
int n,m;
int dy[4]={-1,0,0,1};
int dx[4]={0,-1,1,0};
int ans=-1;
int bfs(int si,int sj){
    int cnt=1;
    queue<pair<int,int>>q;
    q.push({si,sj});
    arr[si][sj]='0';
    while(!q.empty()){
        auto [ui,uj]=q.front();q.pop();
        for(int i=0;i<4;i++){
            int vi=ui+dy[i];
            int vj=uj+dx[i];
            if(vi>=0 && vi<n && vj>=0 && vj<m){
                if(arr[vi][vj]=='1'){
                    cnt++;
                    arr[vi][vj]='0';
                    q.push({vi,vj});
                }
            }
        }
    }
    return cnt;
}
int main(){
    cin >> n >> m;
    for(int i=0;i<n;i++){
        cin >> arr[i];
    }
    for(int i=0;i<n;i++){
        for(int j=0;j<m;j++){
            if(arr[i][j]=='1'){
                ans=max(ans,bfs(i,j));
            }
        }
    }
    cout << ans;
}