比赛 |
20120810 |
评测结果 |
AAAAAAAAAA |
题目名称 |
最大的湖 |
最终得分 |
100 |
用户昵称 |
TBK |
运行时间 |
0.010 s |
代码语言 |
C++ |
内存使用 |
0.48 MiB |
提交时间 |
2012-08-10 09:23:32 |
显示代码纯文本
#include <cstdio>
#include <iostream>
#include <cstdlib>
#include <string>
#include <cstring>
#include <cmath>
#include <vector>
#include <set>
#include <algorithm>
using namespace std;
int a,b,c,d,l,m,n,k[4][2]={{-1,0},{1,0},{0,-1},{0,1}},p[20000][2],q,h,t,s,r;
bool bo[101][101],boo[101][101];
int main(void)
{
freopen("lake.in","r",stdin);
freopen("lake.out","w",stdout);
scanf("%d%d%d",&a,&b,&c);
for (d=0;d<c;d++)
{
scanf("%d%d",&l,&m);
bo[l][m]=true;
}
for (d=1;d<=a;d++)
for (l=1;l<=b;l++)
{
if ((bo[d][l]==true)&&(boo[d][l]==0))
{
h=0;
t=0;
p[h][0]=d;
p[h][1]=l;
h++;
boo[d][l]=true;
while (h>t)
{
for (q=0;q<4;q++)
{
m=p[t][0]+k[q][0];
n=p[t][1]+k[q][1];
if ((m>0)&&(m<=a)&&(n>0)&&(n<=b))
{
if ((bo[m][n]==true)&&(boo[m][n]==false))
{
boo[m][n]=true;
p[h][0]=m;
p[h][1]=n;
h++;
}
}
}
t++;
}
if (h>s) s=h;
}
}
printf("%d",s);
fclose(stdin);
fclose(stdout);
return 0;
}