比赛 20121016 评测结果 AWWWWWWWWW
题目名称 家族 最终得分 10
用户昵称 TBK 运行时间 0.019 s
代码语言 C++ 内存使用 3.99 MiB
提交时间 2012-10-16 20:51:46
显示代码纯文本
#include <iostream>
#include <cstring>
#include <cstdlib>
#include <cstdio>
#include <cmath>
#include <string>
#include <set>
#include <algorithm>
#define MAXN 0x7fffffff
using namespace std;
int a[100][201],b,c,d,l,m,n,r[4][2]={{-1,0},{1,0},{0,1},{0,-1}},p[100000][2],h,t,x,y,z,s;
string str,str1;
int main(void) 
{
    freopen("family.in", "r", stdin);
    freopen("family.out", "w", stdout);
	cin>>b;
	getline(cin,str);
	while (d!=b)
	{
		getline(cin,str);
		l=str.length();
		for (c=0;c<str.length();c++)
			if (str[c]=='*'||str[c]==' ') a[d][c]=1;
		d++;
	}
	for (c=0;c<b;c++)
		for (m=0;m<l;m++)
			if (a[c][m]==0) 
			{
				h=0;
				t=0;
				a[c][m]=1;
				s++;
				p[h][0]=c;
				p[h][1]=m;
				h++;
				while (h>t)
				{
					for (n=0;n<4;n++)
					{
						x=p[t][0]+r[n][0];
						y=p[t][1]+r[n][1];
						if (x>=0&&x<b&y>=0&&y<l)
							if (a[x][y]==0) 
							{
								a[x][y]=1;
								p[h][0]=x;
								p[h][1]=y;
								h++;
							}
					}
					t++;
				}
			}
	printf("%d",s);
    fclose(stdin);
	fclose(stdout);
    return 0;
}