Submission

Status:

[PPPPPPPPPPPPPPPPPPPPPPPPP]

Subtask/Task Score:

{100/100}

Score: 100

User: Ninstroyer

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

Language: cpp

Time: 0.005 second

Submitted On: 2025-12-25 14:29:21

#include<bits/stdc++.h>
using namespace std;
const int nx = 175;

vector<pair<int,int>> dir = { {0,1},{0,-1},{1,0},{-1,0} };

int main()
{
    int n, m; cin>>n>>m;
    vector<vector<char>> arr(nx, vector<char>(nx, '0'));
    for(int i = 1; i <= n; i++) for(int j = 1; j <= m; j++) cin>>arr[i][j];
    int maxLand = 0;
    for(int i = 1; i <= n; i++)
    {
        for(int j = 1; j <= m; j++)
        {
            if(arr[i][j] == '1')
            {
                int land = 1;
                queue<pair<int,int>> q;
                q.push({i,j});
                arr[i][j] = 0;
                while(!q.empty())
                {
                    auto [r,c] = q.front();
                    q.pop();
                    for(auto [rr,cc] : dir)
                    {
                        int dr = r+rr;
                        int dc = c+cc;
                        if(arr[dr][dc] == '1')
                        {
                            land++;
                            arr[dr][dc] = '0';
                            q.push({dr,dc});
                        }
                    }
                }
                maxLand = max(maxLand, land);
            }
        }
    }

    cout<<maxLand<<endl;
}