记录编号 |
132863 |
评测结果 |
AAAAAAAAAA |
题目名称 |
家族 |
最终得分 |
100 |
用户昵称 |
ztx |
是否通过 |
通过 |
代码语言 |
C++ |
运行时间 |
0.004 s |
提交时间 |
2014-10-26 19:00:07 |
内存使用 |
0.33 MiB |
显示代码纯文本
/*
author :hzoi_ztx
title :cogs 1165. 家族
ALG :BFS
CMT :
[2014 10 26]
*/
#include <cstdio>
#define maxn 201
#define maxm 201
int n , ans = 0 ;
bool g[maxn][maxm] = {0} ;
void floodfill(int x,int y) {
g[x][y] = false ;
if (x>0 && g[x-1][y]) floodfill(x-1,y) ;
if (x<n && g[x+1][y]) floodfill(x+1,y) ;
if (y>0 && g[x][y-1]) floodfill(x,y-1) ;
if (y<200&&g[x][y+1]) floodfill(x,y+1) ;
}
int main() {
#define READ
#ifdef READ
freopen("family.in" ,"r",stdin ) ;
freopen("family.out","w",stdout) ;
#endif
int i , j , ch ;
scanf("%d", &n ) ;
for (i = 1 ; i <= n ; i ++ ) {
while (ch=getchar() , ch<' ') ;
if (ch > '*') g[i][1] = true ;
for (j=2,ch=getchar() ; ch>=' ' ; j++,ch=getchar() )
if (ch > '*') g[i][j] = true ;
}
for (i = 1 ; i <= n ; i ++ )
for (j = 1 ; j < maxm ; j ++ )
if (g[i][j]) ans ++ , floodfill(i,j) ;
printf("%d\n", ans ) ;
#ifdef READ
fclose(stdin ) ;
fclose(stdout) ;
#else
getchar() ; getchar() ;
#endif
return 0 ;
}