记录编号 44173 评测结果 AAAAAAAAAA
题目名称 家族 最终得分 100
用户昵称 GravatarTBK 是否通过 通过
代码语言 C++ 运行时间 0.010 s
提交时间 2012-10-17 08:23:09 内存使用 3.99 MiB
显示代码纯文本
#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][211],b,c,d,l[100],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[d]=str.length();
        for (c=0;c<str.length();c++)
            if (str[c]=='*'||str[c]==' '||str[c]==10||str[c]==13) a[d][c]=0;
				else a[d][c]=1;
        d++;
    }
    for (c=0;c<b;c++)
        for (m=0;m<l[c];m++)
            if (a[c][m]==1) 
            {
                h=0;
                t=0;
                a[c][m]=0;
                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)
                        {
							if (a[x][y]==1) 
							{
								a[x][y]=0;
								p[h][0]=x;
								p[h][1]=y;
								h++;
							}
						}
                    }
                    t++;
                }
            }
    printf("%d",s);
    fclose(stdin);
    fclose(stdout);
    return 0;
}