#298. The Castle

The Castle

The Castle

题目描述

一座城堡被分成 m×n 个方块(m ≤ 50,n ≤ 50),每个方块可有 0~4 堵墙(0 表示无墙)。几个连通的方块组成一个房间,房间与房间之间一定是用墙隔开的。现在请你编程解决两个问题:

  1. 该城堡中有多少个房间?
  2. 最大的房间有多大(即包含多少个方块)?

输入

平面图用一个数字表示一个方块的墙情,数字是下面所列数字之和:1(西墙 west)、2(北墙 north)、4(东墙 east)、8(南墙 south)。数字 0 表示没有墙。室内的墙被定义两次,例如方块 (1,1) 的南墙也被其南面的方块 (2,1) 定义了一次。

  • 第一行:一个整数 m(m ≤ 50),表示城堡南北方向的长度。
  • 第二行:一个整数 n(n ≤ 50),表示城堡东西方向的长度。
  • 接下来 m 行,每行 n 个整数(0 ≤ P ≤ 15),表示平面图对应方块的墙情。

建筑中至少有两个房间。

输出

  • 第一行:一个整数,表示房间总数。
  • 第二行:一个整数,表示最大房间的面积(方块数)。

样例输入

4
7
11 6 11  6  3 10  6
7  9  6 13  5 15  5
1 10 12  7 13  7  5
13 11 10 8 10 12 13

样例输出

5
9