#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
int d[55][55],vis[55][55];
int c;
void dfs(int i,int j)
{
if(vis[i][j]) return ;
c++;
vis[i][j]=1;
if(!(d[i][j]&1)) dfs(i,j-1);
if(!(d[i][j]&2)) dfs(i-1,j);
if(!(d[i][j]&4)) dfs(i,j+1);
if(!(d[i][j]&8)) dfs(i+1,j);
}
int main()
{
int m,n,cnt=0,ans=0;;
scanf("%d%d",&m,&n);
for(int i=1;i<=m;i++)
{
for(int j=1;j<=n;j++)
{
scanf("%d",&d[i][j]);
}
}
for(int i=1;i<=m;i++)
{
for(int j=1;j<=n;j++)
{
c=0;
if(!vis[i][j]){
dfs(i,j);
cnt++;
ans=max(ans,c);
}
}
}
printf("%d\n%d\n",cnt,ans);
return 0;
}
POJ 1164 The Castle
最新推荐文章于 2018-11-30 18:00:26 发布