记录编号 369194 评测结果 AAAAAAAAAA
题目名称 [USACO Nov07] 最大的湖 最终得分 100
用户昵称 GravatarkZime 是否通过 通过
代码语言 C++ 运行时间 0.019 s
提交时间 2017-02-08 14:19:18 内存使用 0.37 MiB
显示代码纯文本
#include<cstdio>
using namespace std;
int maxn,map[101][101],n,m,k,c,color[101],sum;bool flag[101][101];
int w[2][4]={{0,1,-1,0},{1,0,0,-1}};
struct lake{
	int x;
	int y;
}l[10001];
int max(int a,int b){
	if(a>b)return a;
	else return b;
}
void dfs(int ax,int ay){
	sum++;
	for(int i=0;i<4;i++){
		int bx=ax+w[0][i];
		int by=ay+w[1][i];
		if(map[bx][by]&&!flag[bx][by]){
			flag[bx][by]=1;
			dfs(bx,by);
		}
	}
}
int main(){
	freopen("lake.in","r",stdin);
    freopen("lake.out","w",stdout);
	scanf("%d%d%d",&n,&m,&k);
	for(int i=0;i<k;i++){
		int ax,ay;
		scanf("%d%d",&ax,&ay);
		l[i].x=ax;
		l[i].y=ay;
		map[ax][ay]=1;
	}
	for(int i=0;i<k;i++){
		int ax=l[i].x;
		int ay=l[i].y;
		if(!flag[ax][ay]){
			dfs(ax,ay);
		}
		maxn=max(maxn,sum);
		sum=0;
	}
	printf("%d",maxn-1);
}