Submission
Status:
[PPPP-SSSSSSSSSSSSSSSSSSSS]
Subtask/Task Score:
{0/100}
Score: 0
User: krittaphot
Problemset: เกาะที่ใหญ่ที่สุด
Language: cpp
Time: 0.003 second
Submitted On: 2026-03-05 20:23:20
#include <bits/stdc++.h>
using namespace std;
int dx[] = {1,-1,0,0};
int dy[] = {0,0,1,-1};
int main()
{
int n,m;
cin >> n >> m;
vector<string> mp(n);
for(int i = 0;i<n;i++){
cin >> mp[i];
}
int ans = 0;
for(int i = 0;i<n;i++){
for(int j = 0;j<m;j++){
if(mp[i][j] == '1'){
queue<pair<int,int>> q;
q.push({i,j});
int cnt = 0;;
while(!q.empty()){
int x = q.front().first;
int y = q.front().second;
q.pop();
mp[x][y] = '0';
cnt++;
for(int k = 0;k<4;k++){
int nx = x+dx[k];
int ny = y+dy[k];
if(nx >= 0 && ny >= 0 && nx < n && ny < m && mp[nx][ny] == '1'){
q.push({nx,ny});
}
}
}
ans = max(ans,cnt);
}
}
}
cout << ans;
}