Logo HelloWorld信息学奥赛题库

少儿编程

时间限制:1 s 空间限制:128 MB

#759. 星格阵列

统计

题目描述

在一片神秘的星域中,有一种古老的防御系统,名为“星格阵列”。这个系统由一个方形网格组成,组成方形网格的小单元均匀排布,网格中的某些单元被激活后生成能量块(标记为 #),而其余单元保持未激活状态(标记为 .)。相邻能量块组成的形状若为矩形,则自动融合为一个大能量块,不能相互融合的能量块之间不能接触(包括边相邻的情况)。你的任务是编写一个程序来检查给定的星格阵列是否符合规则,并统计其中有效能量块的数量。

输入格式:

输入的第一行包含两个用空格分隔的整数 R 和 C ,分别表示阵列的行数和列数,其中 1 <= R, C <= 1000。接下来的 R 行,每行包含 C 个字符,每个字符为 # 或 .。

输出格式:

对于每个测试数据,输出一行结果:
如果存在不符合规则的情况(即有两块激活的区域边相邻),输出 Invalid energy configuration.。
如果所有激活的区域都符合规则(即互不接触),则输出 Valid configuration with E energy blocks.,其中 E 是有效能量块的数量。

输入样例#1:

5 8
##......
##.....#
...##...
#......#
#..#...#

输出样例#1:

Valid configuration with 6 energy blocks.