比赛 |
搜索题... |
评测结果 |
AAAAAAAAAA |
题目名称 |
最大的湖 |
最终得分 |
100 |
用户昵称 |
Steve |
运行时间 |
0.019 s |
代码语言 |
C++ |
内存使用 |
0.40 MiB |
提交时间 |
2014-11-04 19:57:00 |
显示代码纯文本
#include <cstdio>
#include <iostream>
#include <cstring>
using namespace std;
int n,m,Next[4][2]={{1,0},{-1,0},{0,1},{0,-1}},u,v;
bool a[110][110];
struct qq{
int x,y;
}que[10050];
bool find()
{
for(int i=1;i<=n;i++)
{
for(int j=1;j<=m;j++)
{
if(a[i][j]==1)
{
u=i;
v=j;
return 1;
}
}
}
return 0;
}
int main()
{
freopen("lake.in","r",stdin);
freopen("lake.out","w",stdout);
memset(a,0,sizeof(a));
int k,i,j,b,c,head=1,tail=1,cnt,Max=-1,tx,ty;
bool flag=0;
cin>>n>>m>>k;
for(i=1;i<=k;i++)
{
cin>>b>>c;
a[b][c]=1;
}
while(find())
{
que[tail].x=u;
que[tail].y=v;
a[u][v]=0;
tail++;
cnt=1;
while(head<tail)
{
if(cnt>Max)
Max=cnt;
for(i=0;i<=3;i++)
{
tx=que[head].x+Next[i][0];
ty=que[head].y+Next[i][1];
if(tx<1 || tx>n || ty<1 || ty>m)
continue;
if(a[tx][ty]==1)
{
a[tx][ty]=0;
que[tail].x=tx;
que[tail].y=ty;
cnt++;
tail++;
}
}
head++;
}
}
cout<<Max<<endl;
return 0;
}