2010年8月11日 星期三

414 - Machined Surfaces

一台成像設備一次會製造兩張數位圖片,兩張圖最終會被拼起來組合成一張,由於兩張圖的接口並不一定能完全吻合,所以必須量測接口的粗糙程度。

一張數位圖片由兩種字元所組成,"X" 與 " " (空白字元),每張圖的寬度一定是25欄寬,然而長度並不固定,假設為N列。圖的最左邊第1欄的每一列一定全為"X",第1欄的X向右延伸出去直到遇到空白字元為止,構成圖的左半邊。

類似地,第25欄的每一列一定是"X",向左延伸出去直到遇到空白字元為止,為圖的右半邊。

一張圖看起來可能像這樣:

Left                Right
XXXX XXXXX
XXX XXXXXXX
XXXXX XXXX
XX XXXXXX
XXXX XXXX
XXX XXXXXX
1 25

圖中的每一列會被零到多個空白字元隔開成左右兩邊,任何一列最多只會有一個連續的空白區塊。

給定一張圖,你必須計算當圖的左右兩邊拼湊起來之後,中間空白區域的大小,這裡指的是中間所有空白字元的總數。

圖中的兩邊拼湊起來的方式為,把兩邊的圖水平平移靠在一起,直到左邊任何一列的"X"碰到右邊圖形的"X"為止,不會有旋轉、扭曲或歪斜的情形,僅僅只是整塊水平移動靠向另外一邊。

注意:原始的圖形可以已經連接在一起,這時並不需要做水平移動。

Input

輸入會有多組測試資料,每組資料的格式如下:

第一列為整數N,表示圖形的長度有幾列,其值大於0小於13,此數值前面不會有多餘的空白字元。

接下來的N列會畫出圖形的樣子,每一列剛好會是25個字元,前面最少有一個字元會是X,之後會接零到多個空白字元,最後再接上1到多個X。

當程式讀到N=0時表示輸入結束。

Output

針對每一組給定的輸入資料,你的程式必須算出空白區域的大小(圖形拼起來後中間所有空白字元的總數)。

Sample Input

4
XXXX XXXXX
XXX XXXXXXX
XXXXX XXXX
XX XXXXXX
2
XXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXX
1
XXXXXXXXX XX
3
XXXXXX XXXXXXXXXXXXXXXXXX
XXXX XXXXXXXXXXXXXXXXXX
XXXXXX XXXXXXXXXXXXXXXXXX
0

Sample Output

4
0
0
2

原文出處

沒有留言:

張貼留言