Submission
Status:
[PPPPPPPPPPPPPPPPPPPPPPPPP]
Score: 100
User: hmmm
Problemset: เกาะที่ใหญ่ที่สุด
Language: cpp
Time: 0.003 second
Submitted On: 2025-03-25 18:20:26
#include<bits/stdc++.h>
using namespace std;
const int N=200;
char a[N][N];
int dx[]={0,0,1,-1};
int dy[]={1,-1,0,0};
int main(){
ios::sync_with_stdio(0); cin.tie(0);
int n,m,mx=0;
cin >> n >> m;
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
cin >> a[i][j];
}
}
queue<array<int,2>> q;
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
int cnt=1;
if(a[i][j]=='1'){
a[i][j]='0';
q.push({i,j});
while(!q.empty()){
auto x=q.front()[0];
auto y=q.front()[1];
q.pop();
for(int i=0;i<4;i++){
int xx=x+dx[i];
int yy=y+dy[i];
if(xx<1 || yy<1 || xx>n || yy>m) continue;
if(a[xx][yy]=='1'){
q.push({xx,yy});
a[xx][yy]='0';
cnt++;
}
}
}
mx=max(mx,cnt);
}
}
}
cout << mx;
}