比赛 搜索题... 评测结果 AAAAAAAAAA
题目名称 最大的湖 最终得分 100
用户昵称 sqyon 运行时间 0.011 s
代码语言 C++ 内存使用 0.30 MiB
提交时间 2014-11-04 19:44:41
显示代码纯文本
#include <cstdio>

#define maxn 110

bool v[maxn][maxn];
int n, m, k, ans, now;
int g[4][2] = 
{
	{1, 0}, {0, 1},
	{0, -1},{-1, 0}
};

void dfs(int x, int y)
{
	if (!v[x][y] || x < 0 || y < 0)
		return;
	now++;
	v[x][y] = false;
	for (int i = 0; i < 4; i++)
		dfs(x + g[i][0], y + g[i][1]);
	return ;
}

int main()
{
	freopen("lake.in", "r", stdin);
	freopen("lake.out", "w", stdout);
	
	scanf("%d %d %d", &n, &m, &k);
	int x, y;
	for (int i = 0; i < k; i++)
	{
		scanf("%d %d", &x, &y);
		v[x][y] = true;
	}
	
	for (int i = 0; i <= n ;i++)
		for (int j = 0; j <= m ;j++)
			if (v[i][j])
			{
				now = 0;
				dfs(i, j);
				ans = ans > now ? ans : now;
			}
	printf("%d", ans);
	return 0;
}