记录编号 114990 评测结果 AAAAAAAAAA
题目名称 [USACO Nov07] 最大的湖 最终得分 100
用户昵称 GravatarBokjan 是否通过 通过
代码语言 C++ 运行时间 0.004 s
提交时间 2014-08-02 21:46:01 内存使用 0.32 MiB
显示代码纯文本
#include <fstream>
const int maxn = 100 + 2;
bool g[maxn][maxn] = {0};
int counts[maxn * maxn] = {0};
namespace std
{
	ifstream fin("lake.in");
	ofstream fout("lake.out");
}
int dfs(int x, int y)
{
	if(!g[x][y])
		return 0;
	g[x][y] = false;
	int res = 1;
	res += 				 dfs(x - 1, y);
	res += dfs(x, y - 1)       +		dfs(x, y + 1);
	res += 				 dfs(x + 1, y);
	return res;
}
int main(void)
{
	int n, m, k, countsPtr = 0;
	std::fin >> n >> m >> k;
	while(k--)
	{
		int x, y;
		std::fin >> x >> y;
		g[x][y] = true;
	}
	for(int i = 1; i <= n; i++)
		for(int j = 1; j <= m; j++)
			if(g[i][j])
				counts[countsPtr++] = dfs(i, j);
	int max = -1;
	for(int i = 0; i < countsPtr; i++)
		if(counts[i] > max)
			max = counts[i];
	std::fout << max << std::endl;
	std::fin.close();
	std::fout.close();
	return 0;
}