记录编号 137537 评测结果 AAAAAAAAAA
题目名称 [USACO Nov07] 最大的湖 最终得分 100
用户昵称 Gravatarreturn 0; 是否通过 通过
代码语言 C++ 运行时间 0.006 s
提交时间 2014-11-04 21:03:43 内存使用 0.31 MiB
显示代码纯文本
#include<cstdio>
#include<queue>
 
using namespace std;
 
int a[]={0,0,0,1,-1};
int b[]={0,1,-1,0,0};
 
int main()
{
	freopen("lake.in","r",stdin);
	freopen("lake.out","w",stdout);
	int h,l,nLake;
	scanf("%d%d%d",&h,&l,&nLake);
	bool flag[101][101]={false};
	int x,y;
	queue<int>q1,q2;
	for(int i=1;i<=nLake;i++)
	{
		scanf("%d%d",&x,&y);
		flag[x][y]=true;
	}
	int res=1;
	for(int i=1;i<=h;i++)
	{
		for(int j=1;j<=l;j++)
		{
			if(flag[i][j])
			{
				int mmax=1;
				flag[i][j]=false;
				q1.push(i),q2.push(j);
				while(!q1.empty())
				{
					int s=q1.front(),t=q2.front();
					q1.pop(),q2.pop();
					for(int i=1;i<=4;i++)
					{
						int m=s+a[i],n=t+b[i];
						if(flag[m][n])
						{
							mmax++;
							flag[m][n]=false;
							q1.push(m);
							q2.push(n);
						}
					}
				}
				if(res<mmax)res=mmax;
			}
		}
	}
	printf("%d",res);
}