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:57:20
/*
8 13
0010000100000
0000000111000
0110100000000
0100110010100
0100110011100
0000000000100
0000000111000
0000000110000
*/
#include <bits/stdc++.h>
using namespace std;
int n, m, cnt;
int di[] = {0, 0, 1, -1};
int dj[] = {1, -1, 0, 0};
vector<string> grid;
vector<vector<bool>> vis;
void dfs(int i, int j) {
vis[i][j] = true;
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) {
if (!vis[ni][nj] && grid[ni][nj] == '1')
dfs(ni, nj);
}
}
}
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
cin >> n >> m;
grid.resize(n);
vis.assign(n, vector<bool>(m, false));
for (int i = 0; i < n; i++) cin >> grid[i];
int mx = -1;
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
if (!vis[i][j] && grid[i][j] == '1') {
cnt = 0;
dfs(i, j);
mx = max(mx, cnt);
}
}
}
cout << mx;
}