Submission

Status:

[PPP-SSSSSSSSSSSSSSSSSSSSS]

Subtask/Task Score:

{0/100}

Score: 0

User: Kidmaiok

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

Language: cpp

Time: 0.002 second

Submitted On: 2026-10-15 09:44:23

#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define ull unsigned long long
#define space << ' '
#define nl << endl

vector<string> grid;
bool visited[170][170];

int main() {
    ios::sync_with_stdio(false);
    cin.tie(nullptr);
    int r,c;
    cin >> r >> c;
    for(int i = 0; i < r; i++){
        string n;
        cin >> n;
        grid.push_back(n);
    }
    int ans = INT_MIN;
    int d1[] = {-1, 1, 0, 0};
    int d2[] = {0, 0, -1, 1};
    for(int i =0; i < r; i++){
        for(int j =0; j < c; j++){
            if (grid[i][j] != '1' || visited[i][j]) continue;
            queue<pair<int, int>> q;
            q.push({i,j});
            visited[i][j] = 1;
            int area = 0;
            while(q.empty() == 0){

                auto[x,y] = q.front();
                area++;
                q.pop();
                for(int k =0; k < 4; k++){
                    int nx = x + d1[k], ny = y + d2[k];
                    if((nx < 0 || nx >= r || ny < 0 || ny >= c) || visited[nx][ny] == 1 || grid[nx][ny] != '1'){
                        continue;
                    }
                    visited[nx][ny] = 1;
                    q.push({nx,ny});
                }
            }
            ans = max(ans,area);
        }
        
    }
    cout << ans;
}