Submission

Status:

[PPPPPPPPPPPPPPPPPPPPPPPPP]

Subtask/Task Score:

{100/100}

Score: 100

User: kingangel

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

Language: cpp

Time: 0.005 second

Submitted On: 2026-03-14 10:43:15

#include<bits/stdc++.h>
using namespace std;

int dfs(vector<vector<int>>& island1,int i,int j,int x,int y){
    if(j<0||i<0||i>=x||j>=y||island1[i][j]==0){
        return 0;
    }
    island1[i][j]=0;
    int ansarea=1;  
    ansarea+=dfs(island1,i-1,j,x,y);
    ansarea+=dfs(island1,i+1,j,x,y);
    ansarea+=dfs(island1,i,j-1,x,y);
    ansarea+=dfs(island1,i,j+1,x,y);
    
    
    return ansarea;
    
    
}



int main(){
    int x,y,ans=0;
    cin>>x>>y;
    vector<vector<int>> island(x,vector<int>(y));
    for(int i=0;i<x;i++){
        string area;
        cin>>area;
        for(int j=0;j<y;j++){
            island[i][j]=area[j]-'0';
        }
    }

    for(int i=0;i<x;i++){
        for(int j=0;j<y;j++){
            if(island[i][j]==1){
                ans=max(ans,dfs(island,i,j,x,y));
            }
        }
    }
    cout<<ans;
    return 0;
}