标签:
Description
1 2 3 4 5 6 7 ############################# 1 # | # | # | | # #####---#####---#---#####---# 2 # # | # # # # # #---#####---#####---#####---# 3 # | | # # # # # #---#########---#####---#---# 4 # # | | | | # # ############################# (Figure 1) # = Wall | = No wall - = No wall
Input
Output
Sample Input
4 7 11 6 11 6 3 10 6 7 9 6 13 5 15 5 1 10 12 7 13 7 5 13 11 10 8 10 12 13
Sample Output
5 9
#include<iostream> using namespace std; int a[1001][1001],p[1001][1001],d,i,j,maxm,ans,n,m; void dfs(int x,int y){ p[x][y]=1; d++; if(a[x][y]>=8) a[x][y]-=8; else if(p[x+1][y]==0)dfs(x+1,y); if(a[x][y]>=4) a[x][y]-=4; else if(p[x][y+1]==0)dfs(x,y+1); if(a[x][y]>=2) a[x][y]-=2; else if(p[x-1][y]==0)dfs(x-1,y); if(a[x][y]>=1) a[x][y]-=1; else if(p[x][y-1]==0)dfs(x,y-1); } int main(){ cin>>n>>m; for(i=1;i<=n;i++) for(j=1;j<=m;j++) cin>>a[i][j]; for(i=1;i<=n;i++) for(j=1;j<=m;j++) if(p[i][j]==0){ d=0; dfs(i,j); ans++; if(d>maxm)maxm=d; } cout<<ans<<endl<<maxm; return 0; }
标签:
原文地址:http://blog.csdn.net/qq_34215568/article/details/51364043