Submission

Status:

[-SSSSSSSSSSSSSSSSSSSSSSSS]

Subtask/Task Score:

{0/100}

Score: 0

User: Gump2011

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

Language: cpp

Time: 0.002 second

Submitted On: 2026-03-08 22:17:38

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

int main(){
    ios::sync_with_stdio(0), cin.tie(0);
    int n,m;
    cin >> n >> m;

    vector<string> g(n);
    for(int i=0;i<n;i++){
        cin>>g[i];
    }

    vector<vector<int>> vis(n, vector<int>(m,0));

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

    int ans=0;

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

            if(g[i][j]=='0' && !vis[i][j]){

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

                int cnt=1;

                while(!q.empty()){
                    pair<int,int> p=q.front();
                    q.pop();

                    int x=p.first;
                    int y=p.second;

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

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

                        if(!vis[nx][ny] && g[nx][ny]=='0'){
                            vis[nx][ny]=1;
                            q.push({nx,ny});
                            cnt++;
                        }
                    }
                }

                ans = max(ans,cnt);
            }

        }
    }

    cout << ans;
}