#P1493. Machined Surfaces

Machined Surfaces

题目描述

一种成像设备提供了两个机械加工表面的数字图像,这两个表面最终将相互接触组装。需要估计最终接触面的粗糙度。

数字图像由两个字符组成:"XX"和"空格空格"。每幅图像总是有2525列,但行数NN是可变的。第一列总是包含"XX",属于左侧表面。左侧表面可以从第一列向右延伸为连续的XX

同样地,第2525列总是包含"XX",属于右侧表面。右侧表面可以从第2525列向左延伸为连续的XX

数字图像表面示意图

         Left                        Right
         XXXX                      XXXXX  ←1
         XXX                     XXXXXXX
         XXXXX                      XXXX
         XX                       XXXXXX
         .                             .
         .                             .
         .                             .
         XXXX                       XXXX
         XXX                       XXXXX  ←N
        ↑                             ↑
        1                           25

在图像的每一行中,可能有零个或多个空格字符分隔左侧表面和右侧表面。任何一行中都不会有超过一个空白区域。

对于每幅给定的图像,您需要确定在左右表面接触后仍存在的总"空隙"。"空隙"是指左右表面接触后仍保留的空格总数。

两个表面通过严格水平移动相互接触,直到某一行左侧表面的最右"XX"紧邻该行右侧表面的最左"XX"。在接触过程中,这两个表面保持刚性,仅水平移动。

注意:原始图像可能显示两个表面已经接触,在这种情况下,不需要位移即可估算接触粗糙度。

输入格式

输入由一系列数字图像组成。每个图像数据集具有以下格式:

第一行 - 一个无符号整数NN,值大于00且小于1313NN的第一个数字将是该行的第一个字符。

接下来的NN行 - 每行正好有2525个字符;一个或多个XX,然后零个或多个空格,然后一个或多个XX

数据的结束由一个空数据集表示,该数据集的第一行为00,且没有后续数据。

输出格式

对于每个作为数据集接收的图像,您需要回复总空隙(表面接触后剩余的空格数)。使用默认输出,每行一个整数。

输入样例

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

输出样例

4
0
0

题目来源

19951995年北美中东部地区竞赛