Submission
Status:
[PPPPPPPPPPPPPPPPPPPPPPPPP]
Subtask/Task Score:
{100/100}
Score: 100
User: Poon
Problemset: เกาะที่ใหญ่ที่สุด
Language: cpp
Time: 0.005 second
Submitted On: 2026-03-15 16:59:04
#include <bits/stdc++.h>
using namespace std;
int main()
{
int n,m;
cin>>n>>m;
vector<vector<bool>> grid(n,vector<bool>(m));
for(int i=0;i<n;i++)
{
for(int j=0;j<m;j++)
{
char c;
cin>>c;
grid[i][j]=c-'0';
}
}
vector<vector<int>> visited(n,vector<int>(m,-1));
int index=0;
stack<pair<int,int>> s;
int dx[]={0,0,1,-1},dy[]={1,-1,0,0};
for(int i=0;i<n;i++)
{
for(int j=0;j<m;j++)
{
if(grid[i][j]&&visited[i][j]==-1)
{
visited[i][j]=index;
s.push({i,j});
while(!s.empty())
{
int ii=s.top().first,jj=s.top().second;
s.pop();
for(int k=0;k<4;k++)
{
int iii=ii+dx[k],jjj=jj+dy[k];
if(iii>=0&&jjj>=0&&iii<n&&jjj<m&&grid[iii][jjj]&&visited[iii][jjj]==-1)
{
s.push({iii,jjj});
visited[iii][jjj]=index;
}
}
}
index++;
}
}
}
vector<int> freq(index,0);
for(int i=0;i<n;i++)
{
for(int j=0;j<m;j++)
{
if(visited[i][j]!=-1)
{
freq[visited[i][j]]++;
}
}
}
int maxx=0;
for(auto x : freq)
{
maxx=max(maxx,x);
}
cout<<maxx;
}