Submission
Status:
[PPPPPPPPPPPPPPPPPPPPPPPPP]
Subtask/Task Score:
{100/100}
Score: 100
User: Neozaawwman1
Problemset: เกาะที่ใหญ่ที่สุด
Language: cpp
Time: 0.005 second
Submitted On: 2025-12-20 23:36:27
#include <bits/stdc++.h>
using namespace std;
int N,M;
const int ex = 1e3+5;
int grid[ex][ex];
int xx[4]={-1,0,0,1};
int yy[4]={0,-1,1,0};
int mn=0;
queue<pair<int,int>> q;
int BFS(int x1,int y1){
q.push({x1,y1});
int ct=0;
while(!q.empty()){
int x,y;
tie(x,y)=q.front();q.pop();
if(grid[y][x]==0)continue;
ct++;
grid[y][x]=0;
for(int i=0; i<4; i++){
int nx,ny;
nx = x+xx[i];
ny = y+yy[i];
if(nx<0 || ny<0 || nx>=M || ny>=N)continue;
if(grid[ny][nx]==0)continue;
q.push({nx,ny});
}
}
//cout<<ct<<endl;
//mn=fmax(mn,ct);
return ct;
}
int main(){
ios_base::sync_with_stdio(0),cin.tie(0);
cin>>N>>M;
for(int i=0;i<N;i++){
string s;
cin >> s;
for(int j=0;j<M;j++){
grid[i][j] = s[j] - '0';
}
}
for(int i=0; i<N; i++){
for(int j=0; j<M; j++){
if(grid[i][j]==0)continue;
int x=BFS(j,i);
//cout<<x<<endl;
mn = fmax(x,mn);
}
}
cout<<mn;
return 0;
}