记录编号 |
369194 |
评测结果 |
AAAAAAAAAA |
题目名称 |
[USACO Nov07] 最大的湖 |
最终得分 |
100 |
用户昵称 |
kZime |
是否通过 |
通过 |
代码语言 |
C++ |
运行时间 |
0.019 s |
提交时间 |
2017-02-08 14:19:18 |
内存使用 |
0.37 MiB |
显示代码纯文本
#include<cstdio>
using namespace std;
int maxn,map[101][101],n,m,k,c,color[101],sum;bool flag[101][101];
int w[2][4]={{0,1,-1,0},{1,0,0,-1}};
struct lake{
int x;
int y;
}l[10001];
int max(int a,int b){
if(a>b)return a;
else return b;
}
void dfs(int ax,int ay){
sum++;
for(int i=0;i<4;i++){
int bx=ax+w[0][i];
int by=ay+w[1][i];
if(map[bx][by]&&!flag[bx][by]){
flag[bx][by]=1;
dfs(bx,by);
}
}
}
int main(){
freopen("lake.in","r",stdin);
freopen("lake.out","w",stdout);
scanf("%d%d%d",&n,&m,&k);
for(int i=0;i<k;i++){
int ax,ay;
scanf("%d%d",&ax,&ay);
l[i].x=ax;
l[i].y=ay;
map[ax][ay]=1;
}
for(int i=0;i<k;i++){
int ax=l[i].x;
int ay=l[i].y;
if(!flag[ax][ay]){
dfs(ax,ay);
}
maxn=max(maxn,sum);
sum=0;
}
printf("%d",maxn-1);
}