第32793题 程序题
海战:判断船只摆放合法性并统计数量

题目描述

在峰会期间,武装部队处于高度戒备状态:警察监视每一条大街,军队保卫建筑物,领空布满F-2003飞机,巡洋船只和舰队被派去保护海岸线。由于国防海军部仅有少量军官能指挥大型海战,因此选择“海战”游戏来培养新的海军指挥官。 在海战游戏中,方形棋盘上放置着若干船只,船只之间不能相互接触。本题中船只均为轴对齐的矩形(由#字符组成),#表示船体,.表示水域。请编写程序判断棋盘上的船只摆放是否合法,若合法则统计船只总数。

输入描述

第一行包含两个用空格分隔的整数RC1 ≤ R,C ≤ 1000),分别表示棋盘的行数和列数。 接下来R行,每行包含C个字符,每个字符为#(船体)或.(水域)。

输出描述

若船只摆放合法(所有船只均为完整矩形,且不同船只的#没有上下或左右相邻),则输出There are S ships.,其中S为船只总数;否则输出Bad placement.

输入样例

6 8
.....#.#
##.....#
##.....#
.......#
#......#
#..#...#

输出样例

There are 5 ships.
程序运行统计
暂无判题统计