比赛 搜索题... 评测结果 AAWWWWWWWW
题目名称 最大的湖 最终得分 20
用户昵称 席一鸣 运行时间 0.010 s
代码语言 C++ 内存使用 0.37 MiB
提交时间 2014-11-04 18:29:54
显示代码纯文本
#include<cstdio>
#include<iostream>
#include<queue>
using namespace std;
bool v[110][110];
int p[110][110],m,n,w,x[4]={0,0,1,-1},y[4]={1,-1,0,0};
struct o
{
	int x,y;
}s;
void f(int r,int t)
{
	int i,u=1;
	o h,z;
	queue<o>q;
	s.x=r;
	s.y=t;
	v[r][t]=1;
	q.push(s);
	while(!q.empty())
	{
		h=q.front();
		q.pop();
		w=max(u,w);
		for(i=0;i<4;i++)
		{
			z=h;
			z.x+=x[i];
			z.y+=y[i];
			if(!v[z.x][z.y]&&p[z.x][z.y]==1)
			{
				w++;
				v[z.x][z.y]=1;
				q.push(z);
			}
		}
	}
}
main()
{
	freopen("lake.in","r",stdin);
	freopen("lake.out","w",stdout);
	int a,b,i,j,k,m,n;
	cin>>n>>m>>k;
	for(i=0;i<k;i++)
	{
		cin>>a>>b;
		p[a][b]=1;
	}
	for(i=1;i<=n;i++)
		for(j=1;j<=m;j++)
			if(p[i][j]==1&&!v[i][j])
				f(i,j);
	cout<<w;
}