SP7107 GK - G Key

题目描述

Leandro 和 Fede 正在乘火车旅行,为了打发时间,他们决定开始弹吉他。他们打算一起演奏几首歌,但由于 Fede 感冒了,记忆力有些下降。为了帮助他,Leandro 想给 Fede 看一些朋克摇滚歌曲的乐谱。这些歌曲是由一连串音符构成的,共有十二种可能的音符,分成两组:第一组是七个自然音符,分别是 A、B、C、D、E、F、G;第二组是五个变音音符,分别是 A#、C#、D#、F#、G#。 绘制乐谱的方法是:从一个空白乐谱开始,按照歌曲中音符的顺序,从左到右依次绘制每一个音符。下图展示了一个空的乐谱模板,它有两条横线。每条线的开头都用 G 调号表示。每条线上分成四个部分,每部分可以放置四个音符。 在下图中,曲子 “E, F, F#, G, G#, A, A#, B, C, C#, D, D#” 被绘制出来。 ![](https://cdn.luogu.com.cn/upload/vjudge_pic/SP7107/b834e8d1d6aab6f8af41ce851c92bb3e9021b3eb.png) 你能帮助 Leandro 编写一个程序,根据给定的音符序列来绘制这些朋克摇滚歌曲的乐谱吗?

输入格式

输入包含多个测试用例。每个测试用例为一行,描述了音符的数量 $N$ ($1 \le N \le 100$)以及接下来的 $N$ 个音符。音符可能是 A、A#、B、C、C#、D、D#、E、F、F#、G 或 G# 中的一种。每个音符用空格分隔。输入的最后一行包含一个单独的 $-1$,这行不应处理为测试用例。

输出格式

对于每个测试用例,输出相应的歌曲乐谱,并在每个乐谱输出后加一个空行(包括最后一个案例之后)。绘制乐谱时,请参考示例输入输出格式。每行乐谱都有相同的背景,由“|”(竖线)和“-”(连字符)构成。每一行乐谱的边框(第一条和最后一条边框是双重的)以及内部的音符可能不同。乐谱中每个八分音符连在一起绘制,且其高度如图所示。变音音符需用“#”(升号)标示。行尾不应有多余的空格,也不能有空白的乐谱行(即不能没有音符)。

说明/提示

- $1 \le N \le 100$ **本翻译由 AI 自动生成**