挑战你的智力
有一个建筑物平面,可分解为 m × n 个边长面积均相等的小块,成为“格”
相邻格之间可能有墙, wall ( x , y )表示横坐标为 x 、纵坐标为 y 的格,其四个方向墙取值的加和:左面墙取值 1 ,上面墙取值 2 ,右面墙取值 4 ,下面墙取值 8 。
举例: wall ( 1 , 1 )取值为 3 ,则说明上面和左面有墙,其它方向没有。所有的墙将建筑物分割为若干个互相不连通的区域,每个区域称为一个“房间”。
对于格,及 wall ( x , y )的描述,采用数据文件 input.txt 描述
7
4
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
其中,第一行为 m ,第二行为 n ,第三行各个数据为 wall ( 1 , 1 )—— wall ( 1 , m )其他各行依此类推。
问题:,请编写程序,具体要求如下:
读取一个给定的 input.txt 文件,求解,拆掉哪面墙,可以使得合并的两个房间,获得最大面积。输出夹着该墙的两个格的横纵坐标(只需找到满足要求的一堵墙,各坐标之间使用空格分割,如拆掉( 1 , 1 )和( 1 , 2 )两个格中间的墙,则输出为 1 1 1 2 )。