#P1891. Typesetting

Typesetting

本题没有可用的提交语言。

描述 之所以称为比例字体,是因为字符在打印行上需要不同的空间量。文本的 “设置” 大小 (通常以磅为单位) 也会影响每个字符所需的空间。在这个问题中,你会得到一些文本段落来设置。每个段落可以包含特殊的 ''words“ 来选择字体和磅值。

输入 输入从字体宽度表开始。这些数据给出了6 6 种不同字体的 1010 磅字符的宽度。第一行包含表中的字符数 NN00<= NN <=100100)。接下来的 NN 行中的每一行都包含第 11 列中的一个字符,然后是 66 个整数,表示该字符在 66 种不同字体中的宽度。宽度以称为 “units” 的任意度量给出。每个 1010 磅字符的宽度将大于0 0 个单位,并且小于 256256 个单位。字符宽度随磅值线性缩放。因此,如果 1010 点的“A”宽 1212 个单位,则 2020 点的“A”宽 2424 个单位。

输入的其余部分由要排版的段落组成。每个段落都以一行开头,其中包含两个整数 LLWWLL 是段落的输入文本行数(紧跟在第一行之后),W 是每个排版行允许的宽度(以单位为单位)。每个段落开头的初始字体始终为 11 号字体,而要设置字符的初始磅值为 1010。字体编号为 1166,对应于字体宽度表中的第 11 列到第 66 列。空段落(L 为 00 的段落)将标记输入数据的结尾。不会为这个空段落生成任何输出。

每个段落中的单词都是不超过 88 个非空白字符的序列,由空格分隔(即空格 - 输入中不会出现制表符)。输入行末尾的空格无关紧要,单词之间的空格仅在它们分隔单词的范围内才有意义。每个单词中的每个字符都将出现在宽度表中。大小写对于输入数据中的所有字符都很重要。

特殊标记 f1”、“f2”、“f3”、“f4”、“f5“*f1”、“*f2”、“*f3”、“*f4”、“*f5”f6“*f6” 用于选择要在设置其后面的文本时使用的特定字体。标记 sN“*sN” ,其中 NN119999 范围内的整数,表示在设置以下文本时将使用N N 点字符。这些标记将始终与单词和其他标记之间至少用一个空格分隔。请注意,在一个段落中所做的样式和大小更改不会延续到下一个段落,并且许多此类更改可能会出现在单个段落中。

对于每个段落,尝试每行设置尽可能多的单词,确保每个单词后跟至少一个空白的宽度(将始终出现在字体宽度表中),其磅值和样式与前一个单词中的字符相同,但行上的最后一个单词除外。排版行中的最后一个单词不得有任何后面的空格。

缩放字体时,将缩放后的字符宽度舍入到最接近的整数,如果舍入的值介于两个连续整数之间的中间,则向上舍入。因此,如果特定的 1010 点字符占用 99 个空间单位,则 1515 点字符将占用 1414 个空间单位,1616 点字符也是如此。但是,一个 1414 点的角色将只占用 1313 个单位的空间。

输出 对于每个段落,首先显示段落编号 (1122, ...)。然后,对于段落中的每个排版行,显示行号、该行上的第一个和最后一个单词,以及该行上打印的最后一个字符后面的空格单位总数。(这只是行上未被字符或字符之间空格占用的可用空间单位数。

如果单个单词超过行宽,请单独将其设置在一行上。在该行的输出中,仅显示该单个单词,以及等于单词多余宽度的负数空白。