Submission

Status:

[PPPPPPPPPPPPPPPPPPPPPPPPP]

Subtask/Task Score:

{100/100}

Score: 100

User: Mano

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

Language: cpp

Time: 0.005 second

Submitted On: 2026-03-12 23:14:08

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

int dfs(vector<vector<int>> &arr, int i,int j,int x, int y){
    if(i<0 || i>=x || j<0 || j>=y || arr[i][j]==0){
        return 0;
    }
    arr[i][j]=0;
    return 1
    + dfs(arr,i+1,j,x,y)
    + dfs(arr,i-1,j,x,y)
    + dfs(arr,i,j+1,x,y)
    + dfs(arr,i,j-1,x,y);
}
int main(){
    int x,y;
    cin>>x>>y;
    vector<vector<int>> arr(x, vector<int>(y));
    for(int i=0;i<x;i++){
        string s;
        cin>>s;

        for(int j=0;j<y;j++){
            arr[i][j] = s[j] - '0';
        }
    }
    int maxx = 0;
    for(int i=0;i<x;i++){
        for(int j=0;j<y;j++){
            if(arr[i][j]==1){
                maxx=max(maxx,dfs(arr,i,j,x,y));
            }
        }
    }
    cout<<maxx;
}