#P16516. [NEERC2007 Northern]K'ak'-u-pakal
[NEERC2007 Northern]K'ak'-u-pakal
题目背景
科学家重新发现古代玛雅城市后,找到了大量用未知文字写成的文本。上图展示的是玛雅城市奇琴伊察的一名军事首领兼祭司 K'ak'-u-pakal 的名字。
玛雅象形文字并不是单独的图符,而是由多个基本字形按照相对位置组合而成。所有已知字形都用 到 的整数编号。
题目描述
为了用纯文本描述字形之间的相对位置,定义了如下编码语言。
形式文法为:
<inscription> -> <glyph id>
| '(' <block> '.' <horizontal group> ')'
| '(' <block> ':' <vertical group> ')'
<horizontal group> -> <block> [ '.' <horizontal group> ]
<vertical group> -> <block> [ ':' <vertical group> ]
<block> -> <inscription> | '[' <inscription> ']'
其中:
.表示将若干块水平排列;:表示将若干块竖直排列;- 方括号包围的块是所在组合中的特殊块;
- 每个组合中至多有一个方括号块。
例如,K'ak'-u-pakal 的象形文字可编码为:
((669:604).(586:(27:[(534.534)])))
你需要根据给定编码,输出对应的字符画布局。
布局规则
输出只能由以下字符组成:
+、-、|、空格;- 数字
0到9; - 换行符。
每个块用矩形边框表示,并满足:
- 同一个水平组合中的普通块必须具有完全相同的宽和高;
- 其中被方括号包围的块必须恰好是其他普通块的两倍宽;
- 同一个竖直组合中的普通块必须具有完全相同的宽和高;
- 其中被方括号包围的块必须恰好是其他普通块的两倍高;
- 字形编号前后各留一个空格,并放置在对应块的左上角;
- 输出必须尽可能短。
题目保证每个测试都存在合法布局,并且某个最短合法输出不超过 字节。
输入格式
输入一行不含空格的字符串,为合法的玛雅象形文字编码。
输出格式
按照上述规则输出最短的字符画布局。
样例
输入
((669:604).(586:(27:[(534.534)])))
输出
+-----------+-----------+
| 669 | 586 |
| | |
| | |
| | |
| | |
+-----------+-----------+
| 604 | 27 |
| +-----+-----+
| | 534 | 534 |
| | | |
| | | |
+-----------+-----+-----+
数据范围
- 输入字符串不含空格;
- 输入长度不超过 ;
- 字形编号范围为 ;
- 输出长度不超过 字节。