Submission
Status:
[PPP-SSSSSSSSSSSSSSSSSSSSS]
Subtask/Task Score:
{0/100}
Score: 0
User: SparkPun
Problemset: เกาะที่ใหญ่ที่สุด
Language: cpp
Time: 0.002 second
Submitted On: 2026-03-14 18:21:05
#include <bits/stdc++.h>
using namespace std;
const int N=180;
string arr[N];
int n,m;
int dy[4]={-1,0,0,1};
int dx[4]={0,-1,1,0};
int ans=-1;
int bfs(int si,int sj){
int cnt=1;
queue<pair<int,int>>q;
q.push({si,sj});
arr[si][sj]='0';
while(!q.empty()){
auto [ui,uj]=q.front();q.pop();
for(int i=0;i<4;i++){
int vi=ui+dy[i];
int vj=uj+dx[i];
if(vi>=0 && vi<n && vj>=0 && vj<m){
if(arr[vi][vj]=='1'){
cnt++;
arr[vi][vj]='0';
q.push({vi,vj});
}
}
}
}
return cnt;
}
int main(){
cin >> n >> m;
for(int i=0;i<n;i++){
cin >> arr[i];
}
for(int i=0;i<n;i++){
for(int j=0;j<m;j++){
if(arr[i][j]=='1'){
ans=max(ans,bfs(i,j));
}
}
}
cout << ans;
}