#include<bits/stdc++.h> using namespace std; struct node{ int x,y; }; int n,m,ans,ma; int a[110][110]; int f[110][110]; int dx[]={0,0,-1,1}; int dy[]={-1,1,0,0}; void bfs(int x,int y){ queue q; q.push({x,y}); f[x][y]=true; ans=1; while(!q.empty()){ int x=q.front().x; int y=q.front().y; q.pop(); for(int i=0;i<4;i++){ int tx=dx[i]+x; int ty=dy[i]+y; if(tx>=1 && tx<=n && ty>=1 && ty<=m && a[tx][ty] && !f[tx][ty]){ q.push({tx,ty}); f[tx][ty]=true; ans++; } } } } int main(){ cin>>n>>m; for(int i=1;i<=n;i++){ for(int j=1;j<=m;j++){ cin>>a[i][j]; } } for(int i=1;i<=n;i++){ for(int j=1;j<=m;j++){ if(a[i][j] && !f[i][j]){ ans=0; bfs(i,j); ma=max(ans,ma); } } } cout<<ma<<endl; return 0; }

0 条评论

目前还没有评论...