Submission
Status:
[PPPPPPPPPPPPPPPPPPPPPPPPP]
Subtask/Task Score:
{100/100}
Score: 100
User: faofao
Problemset: เกาะที่ใหญ่ที่สุด
Language: cpp
Time: 0.005 second
Submitted On: 2026-03-13 11:59:21
#include <bits/stdc++.h>
using namespace std;
int n,m ;
int grid[171][171] ;
bool vis[171][171] ;
int di[] = {-1,0,0,1} ;
int dj[] = {0,-1,1,0} ;
int ct = 0;
int mx=0 ;
void dfs(int i,int j){
grid[i][j] = 0;
ct++ ;
for(int k=0 ; k<4 ; k++){
int ni = i+di[k] ;
int nj = j+dj[k] ;
if(grid[ni][nj] == 0 || ni<0 || ni>=n || nj<0 || nj>=m) continue;
dfs(ni,nj) ;
}
}
int main(){
ios::sync_with_stdio(0),cin.tie(0) ;
cin >> n >> m ;
for(int i=0 ; i<n ; i++){
string s ; cin >> s ;
for(int j=0 ; j<m ; j++){
grid[i][j] = s[j]-'0';
}
}
for(int i=0 ; i<n ; i++){
for(int j=0 ; j<m ; j++){
if(grid[i][j] == 0) continue;
ct=0 ;
dfs(i,j) ;
mx = max(mx,ct) ;
}
}
cout << mx ;
}