Submission

Status:

[PPPPPPPPPPPPPPPPPPPPPPPPP]

Subtask/Task Score:

{100/100}

Score: 100

User: Chayatoeyy

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

Language: cpp

Time: 0.004 second

Submitted On: 2026-03-14 11:46:45

#include<bits/stdc++.h>
using namespace std;
int n,m;
int arr[175][175];
int ans=0;
int rc[]={-1,0,0,1};
int cc[]={0,-1,1,0};
int walk(int row,int col){
    arr[row][col]=0;
    int ct=1;
    for(int i=0;i<4;i++){
        int nr = row+rc[i];
        int nc = col+cc[i];
        if(nr<0 || nc<0 || nr>=n || nc>=m || arr[nr][nc]==0) continue;
        ct+=walk(nr,nc);
    }
    return ct;
}

int main(){
    ios_base::sync_with_stdio(false);
    cin.tie(0);
    cin >> n >> m;
    for(int i=0;i<n;i++){
        string s;
        cin >> s;
        for(int k=0;k<m;k++){
            arr[i][k]=s[k]-'0';
        }
    }
    for(int i=0;i<n;i++){
        for(int j=0;j<m;j++){
            if(arr[i][j]==1){
                ans = max(walk(i,j),ans);
            }
        }
    }
    cout << ans;
}