sdut2152 Balloons

来源:互联网 发布:core java中文版下载 编辑:程序博客网 时间:2024/04/30 12:11
#include<iostream>#include<cstring>#include<cstdio>using namespace std;char a[101][101];bool fs[101][101],fk[101][101];int n;void dfss(int x,int y){if(x<0||x>=n||y<0||y>=n||a[x][y]=='0'||fs[x][y]==1)return;fs[x][y]=1;dfss(x-1,y);dfss(x+1,y);dfss(x,y-1);dfss(x,y+1);}void dfsk(int x,int y){if(x<0||x>=n||y<0||y>=n||a[x][y]=='0'||fk[x][y]==1)return;fk[x][y]=1;dfsk(x-1,y-1);dfsk(x-1,y);dfsk(x-1,y+1);dfsk(x,y-1);              dfsk(x,y+1);dfsk(x+1,y-1);dfsk(x+1,y);dfsk(x+1,y+1);}int main(){int i,j,icase=0;while(scanf("%d",&n)&&n!=0){memset(a,0,sizeof(a));memset(fs,0,sizeof(fs));memset(fk,0,sizeof(fk));for(i=0;i<n;i++)scanf("%s",a[i]);int count1=0,count2=0;for(i=0;i<n;i++)for(j=0;j<n;j++)if(a[i][j]=='1'){if(fs[i][j]==0){count1++;dfss(i,j);}if(fk[i][j]==0){count2++;dfsk(i,j);}}printf("Case %d: %d %d\n\n",++icase,count1,count2);}return 0;} /**************************************Problem id: SDUT OJ 2152 Result: Accepted Take Memory: 620K Take Time: 0MS Submit Time: 2013-05-23 00:06:31  **************************************/


原创粉丝点击