2014年1月7日 星期二

[ZJ] d165. 八、草场普查


#include<stdio.h>
#include<string.h>
int v[105][105],s[105][105]={0},d[4][2]={{0,1},{0,-1},{1,0},{-1,0}},n,m,ans,add,cnt;
void dfs(int x,int y){
    add+=s[x][y];
    if(s[x][y]==0) return;
    for(int i=0;i<4;i++){
        if(v[x+d[i][0]][y+d[i][1]]==0){
            v[x+d[i][0]][y+d[i][1]]=1;
            dfs(x+d[i][0],y+d[i][1]);
        }
    }
}
int main(){
    int i,j;
    while(scanf("%d%d",&n,&m)!=EOF){
        memset(v,0,sizeof(v));
        memset(s,0,sizeof(s));
        ans=cnt=0;
        for(i=1;i<=n;i++)
            for(j=1;j<=m;j++)
                scanf("%d",&s[i][j]);
        for(i=1;i<=n;i++)
            for(j=1;j<=m;j++)
                if(s[i][j] && v[i][j]==0){
                    add=0,v[i][j]=1,dfs(i,j),cnt++;
                    if(add>ans) ans=add;
                }

        printf("%d\n%d\n",cnt,ans);
    }
}

沒有留言:

張貼留言