Submission
Status:
[PPP-SSSSSSSSSSSSSSSSSSSSS]
Subtask/Task Score:
{0/100}
Score: 0
User: Chayatoeyy
Problemset: เกาะที่ใหญ่ที่สุด
Language: cpp
Time: 0.002 second
Submitted On: 2026-03-14 11:43:42
#include<bits/stdc++.h>
using namespace std;
int n,m;
int arr[200][200];
int ans=INT_MIN;
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){
int s = walk(i,j);
ans = max(s,ans);
}
}
}
cout << ans;
}