在潘多拉星球,納威人也熱衷于搞房地產賣給中國人。他們把空中的懸浮山切割成一個個的立方體,然后在上面蓋房子。一個立方體就是一個公寓樓。在懸浮山的表面上,重力是朝向山體中心的,因此每個面都有能住人的房間。作為到處投資的中國IT新貴,你看上了一座懸浮公寓,想知道這個公寓里面有多少個房間,以及最大的房間有多大。自己寫個程序解決這個問題吧。
立方體的每個面被劃分為k*k(k<20)個方格,方格有可能是平地,也有可能墻,墻無法通過。連續的平地可以形成房間。房間可以跨越棱線。
平地用0表示,墻用1表示。
輸入第一行為測試數據組數。 對每組測試數據: 輸入第一行為k,接下來為6*k行,每行k個字符(空格分開,平地用0表示,墻用1表示),分別表示ABDC,BFHD,FEGH,EACG,EFBA,GHDC這6個平面。 每個平面第一個字母是左上角,第二個字母是右上角。
輸出房間個數和最大的房間大小(包含的平地格子數目)
1 3 0 0 0 0 1 0 1 1 1 1 0 0 1 1 0 1 0 0 0 1 0 0 0 1 1 1 0 1 1 1 0 1 1 1 1 0 0 0 1 1 1 1 1 0 0 0 0 0 1 1 1 1 0 0
6 12
遍歷每個未訪問的點查找最大房間,具體實現分析可看此文章: http://blog.csdn.net/pku_zzy/article/details/51648457 在代碼中多加了點日志。
新聞熱點
疑難解答