Submission
Status:
[PPP-SSSSSSSSSSSSSSSSSSSSS]
Subtask/Task Score:
{0/100}
Score: 0
User: klalnwza007
Problemset: เกาะที่ใหญ่ที่สุด
Language: cpp
Time: 0.002 second
Submitted On: 2025-11-05 22:43:58
/*
8 13
0010000100000
0000000111000
0110100000000
0100110010100
0100110011100
0000000000100
0000000111000
0000000110000
*/
#include <bits/stdc++.h>
using namespace std;
int cnt;
int di[] = {0,0,1,-1};
int dj[] = {1,-1,0,0};
int n,m;
vector<vector<bool>> vis;
vector<string> v;
/*
void dfs (int i, int j) {
vis[i][j] = 1;
cnt++;
for (int k=0;k<4;k++) {
int ni = i + di[k];
int nj = j + dj[k];
if (ni >= 0 && ni < n && nj >= 0 && nj < m && !vis[ni][nj] && v[ni][nj] == '1') {
dfs(ni,nj);
}
}
}
*/
void dfs (int i, int j) {
vis[i][j] = 1;
//int c = 1;
cnt++;
for (int k=0;k<4;k++) {
int x = dj[k] + j;
int y = di[k] + i;
if (x >= 0 && x < m && y >=0 && y < n) {
if (!vis[y][x] && v[y][x] == '1') {
dfs(y,x);
}
}
}
}
int main () {
//ios_base::sync_with_stdio(0);cin.tie(0);
int mx=-1;
cin >> n >> m;
v.resize(n);
vis.assign(n,vector<bool> (m,0));
for (int i=0;i<n;i++) cin >> v[i];
for (int i=0;i<n;i++) {
for (int j=0;j<m;j++) {
if (!vis[i][j] && v[i][j] == '1') {
cnt = 0;
dfs(i,j);
mx = max(mx,cnt);
}
}
}
cout << mx;
}