Submission
Status:
[PPPP-SSSSSSSSSSSSSSSSSSSS]
Subtask/Task Score:
{0/100}
Score: 0
User: letdown
Problemset: เกาะที่ใหญ่ที่สุด
Language: cpp
Time: 0.003 second
Submitted On: 2026-03-12 23:39:23
#include <bits/stdc++.h>
// #include "bits/stdc++.h"
using namespace std;
int dx[] = {1, -1, 0, 0};
int dy[] = {0, 0, 1, -1};
int n, m;
bool a[200][200];
int bfs(int sn, int sm) {
int ans = 0;
queue<pair<int, int>> q;
q.push({sn, sm});
while (!q.empty()) {
int r = q.front().first, c = q.front().second;
q.pop();
a[r][c] = 0;
ans++;
for (int i = 0; i < 4; i++) {
int nr = r + dx[i];
int nc = c + dy[i];
if (nr >= 0 && nr < n && nc >= 0 && nc < m) {
if (a[nr][nc]) {
q.push({nr, nc});
}
}
}
}
return ans;
}
int main() {
cin.tie(0)->sync_with_stdio(0);
cin >> n >> m;
int mx = 0;
string s;
for (int i = 0; i < n; i++) {
cin >> s;
for (int j = 0; j < m; j++) a[i][j] = (s[j] == '1');
}
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
if (a[i][j]) {
mx = max(mx, bfs(i, j));
}
}
}
cout << mx;
}