比赛 搜索题... 评测结果 AAAAAAAAAA
题目名称 最大的湖 最终得分 100
用户昵称 Vincent 运行时间 0.027 s
代码语言 C++ 内存使用 0.37 MiB
提交时间 2014-11-04 19:58:54
显示代码纯文本
#include <cstdio>
#include <cstring>
#include <iostream>
#define MAXN 110
#define max(A,B) ((A)>(B)?(A):(B))
using namespace std;

int a[MAXN][MAXN]={0},vis[MAXN][MAXN]={0};
int n,m,k,ans=0;

int dfs(int x,int y){
    if (!vis[x][y]&&a[x][y]){
        vis[x][y]=1;
        int cnt;
        cnt = 1+dfs(x,y-1)+dfs(x,y+1)+dfs(x-1,y)+dfs(x+1,y);
        return cnt;
    }
    return 0;
}

int main(){
    int x,y,t;
    freopen("lake.in","r",stdin);
    freopen("lake.out","w",stdout);
    scanf("%d%d%d",&n,&m,&k);
    for (int i=0;i<k;++i) {
        scanf("%d%d",&x,&y);
        a[x][y]=1;
    }
    for (int i=1;i<=n;++i){
        for (int j=1;j<=m;++j){
            t=dfs(i,j);
            ans=max(ans,t);
        }
    }
    printf("%d\n",ans);
    return 0;
}