feier7501 发表于 2008-2-12 16:34

房间问题(C,C++)

如图,
1 2 3 4 5 6 7
| | | | | | | |1           n
| | | | | | | |2        w<-|->e
| | | | | | | |3           s
| | | | | | | |4
  ^
箭头指明被拆除的墙(根据输出)
编程计算:
1.该建筑中有多少个房间;
2.最大的房间有多大;
3.拆除建筑中的某一堵墙,以形成一个尽可能大的房间,指出该墙。
该建筑分成m*n个方块(m<50,n<50),每个方块可有0~4堵墙(0表示无墙)。
输入:
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

注释:
用一个数字表示一个方块。
A:4表示南北方向的方块数,7表示东西方向的方块数;
B:每个方块中墙的特征由数字P来描述(0<P<15)。数字P是下面的可能取得数字之和:
1(西墙 west)
2(北墙 north)
4(东墙 east)
8(南墙 south)
室内的墙被定义两次:例如方块(1,1)中的南墙也被位于其北面的方块(2,1)定义了一次。
C:建筑中至少有两个房间。


输出:
5
9
(4,1)(4,2)

注释:
第一行写房间总数;
第二行写最大房间的面积(方块数);
第三行写应拆除位于哪两个放歌间的一堵墙,只要给出其中一个即可。


页: [1]

编程论坛