比赛 |
搜索题... |
评测结果 |
AAAAAAAAAA |
题目名称 |
最大的湖 |
最终得分 |
100 |
用户昵称 |
Bokjan |
运行时间 |
0.022 s |
代码语言 |
C++ |
内存使用 |
0.32 MiB |
提交时间 |
2014-11-04 20:06:01 |
显示代码纯文本
#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;
}