Submission

Status:

[PPPPPPPPPPPPPPPPPPPPPPPPP]

Subtask/Task Score:

{100/100}

Score: 100

User: Neozaawwman1

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

Language: cpp

Time: 0.003 second

Submitted On: 2026-03-11 11:53:23

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

int n,m;
int g[175][175];
int dx[4]={-1,1,0,0};
int dy[4]={0,0,-1,1};

int main(){
    ios::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++){
            g[i][j]=s[j]-'0';
        }
    }

    int ans=0;

    for(int i=0;i<n;i++){
        for(int j=0;j<m;j++){

            if(g[i][j]==0) continue;

            queue<pair<int,int>> q;
            q.push({i,j});
            g[i][j]=0;

            int ct=1;

            while(!q.empty()){
                auto [y,x]=q.front();
                q.pop();

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

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

                    g[ny][nx]=0;
                    ct++;
                    q.push({ny,nx});
                }
            }

            ans=max(ans,ct);
        }
    }

    cout<<ans;
}