Submission

Status:

[PPPPPPPPPPPPPPPPPPPPPPPPP]

Subtask/Task Score:

{100/100}

Score: 100

User: Quaoar

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

Language: cpp

Time: 0.005 second

Submitted On: 2025-12-31 22:36:59

#include <iostream>
using namespace std;
int n,m;
int cnt = 0;
int mx = 0;
int map[171][171];
int visited[171][171];
void re(int x , int y){
    if (map[x][y] == 0) return;
    if (visited[x][y]) return;
    map[x][y] = 0;
    visited[x][y] = true;
    if (x - 1 >= 0) re(x - 1 , y);
    if (x + 1 < n) re(x + 1 , y);
    if (y - 1 >= 0) re(x , y - 1);
    if (y + 1 < m) re(x , y + 1);
    cnt++;
}

int main(){
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    cin >> n >> m;
    for (int i = 0 ; i < n ; i++){
        for (int j = 0 ; j < m ; j++){
            char temp;
            cin >> temp;
            map[i][j] = temp - '0';
        }
    }

    for (int i = 0 ; i < n ; i++){
        for (int j = 0 ; j < m ; j++){
            if (map[i][j] == 0){
                continue;
            }
            re(i,j);
            /*
            for (int a = 0 ; a < n ; a++){
                for (int b = 0 ;b < m ; b++){
                    cout << map[a][b] << " ";
                }
                cout << "\n";
            }
            cout << cnt << " " << mx << "\n";
            */
            if (cnt > mx){
                mx = cnt;
            }
            cnt = 0;
        }
    }
    cout << mx;
}