Submission

Status:

[PPPPPPxSSSSSSSSSSSSSSSSSS]

Subtask/Task Score:

{0/100}

Score: 0

User: House123

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

Language: cpp

Time: 0.002 second

Submitted On: 2026-03-09 10:59:01

#include <bits/stdc++.h>
using namespace std;
int n,m;
int nx = 170;
vector<vector<char>> lake(nx,vector<char>(nx));
int jj[4] = {1,-1,0,0};
int ii[4] = {0,0,1,-1};
int dfs(int i, int j){
    int size_island = 1;
    lake[i][j] = '0';

    for(int a = 0; a < 4; a++){
        int delta_i = i+ii[a];
        int delta_j = j+jj[a];
        if(delta_i >= 1 && delta_i <= n && delta_j >= 1 && delta_j <= m){
            if(lake[delta_i][delta_j] == '1'){
                
                size_island+=dfs(delta_i,delta_j);
            }
        }
    }


    return size_island;

}
int main(){
    cin >> n >> m;
    for(int i = 1; i <= n;i++){
        for(int j= 1; j <= m;j++){
            cin >> lake[i][j]; //cin those lake!
        }
    }
    int max_size_island = 0;
    for(int i = 1; i <= n;i++){
        for(int j= 1; j <= m;j++){
            if(lake[i][j] == '1'){
                int answer = dfs(i,j);
                if( answer > max_size_island){
                    max_size_island = answer;
                }
            }
        }
    }
    
    cout << max_size_island;
    return 0;
}