Submission

Status:

[PPP-SSSSSSSSSSSSSSSSSSSSS]

Subtask/Task Score:

{0/100}

Score: 0

User: Fifaxmb

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

Language: cpp

Time: 0.002 second

Submitted On: 2026-02-21 11:38:05

#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<bool>> vis(n,vector<bool>(m,0));
    int dx[4] = {1,-1,0,0};
    int dy[4] = {0,0,1,-1};
    int ans = INT_MIN;
    for(int i =0;i< n;i++){
        for(int j =0;j < m;j++){
            if(g[i][j] == '1' && !vis[i][j]){
                queue<pair<int,int>> q;
                q.push({i,j});
                vis[i][j] = 1;
                int cnt = 1;
                while(!q.empty()){
                    auto[x,y] = q.front();
                    q.pop();
                    for(int d =0;d < 4;d++){
                        int xx = x + dx[d];
                        int yy = y + dy[d];
                        if(xx < 0 || yy < 0 || xx >= n||yy >= m) continue;
                        if(vis[xx][yy]) continue;
                        if(g[xx][yy] == '0') continue;
                        
                        vis[xx][yy] = 1;
                        q.push({xx,yy});
                        cnt++;
                    }
                }
                ans = max(ans,cnt);
            }
        }
    }
    cout << ans;
}