Submission
Status:
[PPPPPPPPPPPPPPPPPPPPPPPPP]
Subtask/Task Score:
{100/100}
Score: 100
User: samsenpisardmoo
Problemset: เกาะที่ใหญ่ที่สุด
Language: cpp
Time: 0.003 second
Submitted On: 2026-02-15 11:12:28
#include <bits/stdc++.h>
using namespace std;
int main()
{
cin.tie(NULL) -> sync_with_stdio(false);
int n,m,cnt=0,mx=0;
queue<pair<int, int>> q;
cin >> n >> m;
char mp[n][m];
int vs[n][m];
for(int i=0; i<n; i++)
{
for(int j=0; j<m; j++)
{
cin >> mp[i][j];
vs[i][j] = 0;
}
}
for(int i=0; i<n; i++)
{
for(int j=0; j<m; j++)
{
cnt=0;
if(!vs[i][j] && mp[i][j]=='1')
{
vs[i][j] = 1;
q.push({i,j});
while(!q.empty())
{
int f = q.front().first;
int k = q.front().second;
q.pop();
if(f+1 < n && mp[f+1][k] == '1' && !vs[f+1][k]) q.push({f+1,k}),vs[f+1][k] = 1 ;
if(f-1 >= 0 && mp[f-1][k] == '1'&& !vs[f-1][k]) q.push({f-1,k}),vs[f-1][k] = 1 ;
if(k+1 < m && mp[f][k+1] == '1' && !vs[f][k+1]) q.push({f,k+1}),vs[f][k+1] = 1 ;
if(k-1 >= 0 && mp[f][k-1] == '1' && !vs[f][k-1]) q.push({f,k-1}),vs[f][k-1] = 1 ;
cnt++;
}
}
mx=max(cnt,mx);
}
}
cout << mx;
}