#include<iostream>
#include<math.h>
#include<cstring>
using namespace std;
char map[500][500];
int n,m,k;
int b[4][2]={ {1,0},{-1,0},{0,1},{0,-1} };
int cnt;
void dfs(int x,int y)
{
int dx,dy;
int i;
for(i=0;i<4;i++)
{
dx=x+b[i][0];
dy=y+b[i][1];
if(dx>=1&&dx<=n&&dy>=1&&dy<=m&&map[dx][dy]=='1')
{
map[dx][dy]='0';
cnt++;
dfs(dx,dy);
//cnt--;
}
}
return ;
}
int main()
{
int i,j;
int mmax;
//int cnt;
int a,b;
while(scanf("%d%d%d",&n,&m,&k)!=EOF)
{
for(i=1;i<=499;i++)
for(j=1;j<=499;j++)
map[i][j]='0';
for(i=1;i<=k;i++)
{
scanf("%d%d",&a,&b);
map[a][b]='1';
}
mmax=0;
for(i=1;i<=n;i++)
{
for(j=1;j<=m;j++)
{
if(map[i][j]=='1')
{
cnt=0;
dfs(i,j);
if(cnt>mmax)
mmax=cnt;
}
}
}
printf("%d\n",mmax);
}
return 0;
}
poj 3620 Avoid The Lakes
最新推荐文章于 2021-02-22 05:58:50 发布