Submission
Status:
[PPPPPPPPPPPPPPPPPPPPPPPPP]
Subtask/Task Score:
{100/100}
Score: 100
User: Cmoss9
Problemset: เกาะที่ใหญ่ที่สุด
Language: cpp
Time: 0.004 second
Submitted On: 2026-01-04 01:13:04
#include <bits/stdc++.h>
using namespace std;
int maxsize = 0;
int n,m;
int dfs(vector<vector<char>> &island, int i , int k) {
if (i < 0 || i >= n || k < 0 || k >= m || island[i][k] == '0') {
return 0;
}
island[i][k] = '0';
int size = 1;
size += dfs(island, i + 1, k);
size += dfs(island, i - 1, k);
size += dfs(island, i, k + 1);
size += dfs(island, i, k - 1);
return size;
}
int main () {
ios_base::sync_with_stdio(0); cin.tie(0);
cin >> n >> m;
vector<vector<char>> island(n,vector<char>(m));
for (int i = 0;i<n;i++) {
for (int k = 0;k<m;k++) {
cin >> island[i][k];
}
}
for (int i = 0;i<n;i++) {
for (int k = 0;k<m;k++) {
if (island[i][k] == '1') {
int curr = dfs(island,i,k);
maxsize = max(maxsize,curr);
}
}
}
cout << maxsize;
}